분류 전체보기(348)
-
AOP Alliance (Java/J2EE AOP standards)
AOP AllianceAOP Alliance aopalliance.sourceforge.netaopalliance 1.0 javadoc (aopalliance) Introduction이 문서의 목적은 AOP Alliance 프로젝트를 소개하는 것입니다. 그 목표, 철학, 제공해야 할 답변, 그리고 제공하지 말아야 할 것들에 대해 다루고자 합니다. 이 문서는 AOP Alliance의 다른 구성원들과 논의를 통해 우리가 여기서 무엇을 하고 있는지에 대한 공통된 견해를 도출하기 위해 추가 논의가 필요한 초안 제안서입니다. 또한, 목록에서 논의 중에 흥미로운 점이 나오면 이 문서에 추가되어야 합니다.이 문서는 백서(white paper)로, AOP Alliance 구성원들이 내부적으로 사용할 수 있을 뿐만 아니..
2023.05.10 -
sealed interface
sealed interface는 Java 15에서 도입된 기능으로, 인터페이스가 특정 클래스들만을 상속하거나 구현할 수 있도록 제한하는 기능을 제공합니다. 이를 통해 인터페이스를 상속하거나 구현할 수 있는 클래스들을 명시적으로 지정함으로써, 보다 강력한 캡슐화와 제어를 가능하게 합니다.주요 특징:제한된 상속:sealed로 선언된 인터페이스는 permits 키워드를 사용하여 상속이나 구현할 수 있는 클래스 또는 인터페이스를 명시합니다.sealed interface를 구현할 수 있는 클래스들은 반드시 같은 모듈 또는 패키지에 있어야 하며, 명시적으로 상속을 허용한 클래스만 가능합니다.하위 클래스의 종류:sealed interface를 구현하는 클래스는 세 가지로 구분될 수 있습니다:final: 더 이상 다른..
2023.05.08 -
JUnit5
보호되어 있는 글입니다.
2023.05.04 -
@Import
@Import 어노테이션을 사용하는 것은 Spring Framework에서 애플리케이션의 구성(Configuration) 메타데이터를 추가하는 방법 중 하나입니다. 이 어노테이션을 통해 다양한 방식으로 구성 클래스를 가져와 애플리케이션 컨텍스트에 등록할 수 있습니다. @Import를 사용하는 방법은 크게 정적 방법과 동적 방법으로 나눌 수 있습니다.정적 방법(Static Method) 정적 방법은 가장 기본적인 @Import 사용 방식으로, 한 개 또는 여러 개의 구성 클래스를 직접 명시합니다. 이 방식은 컴파일 시점에 결정되므로 정적이라고 합니다. 예를 들어, @Configuration 어노테이션이 붙은 Java 클래스에 @Import 어노테이션을 사용하여 다른 구성 클래스들을 명시적으로 지정할 수 있..
2023.05.04 -
Pointcut API in Spring
이 섹션에서는 Spring이 중요한 포인트컷 개념을 어떻게 처리하는지 설명합니다.Concepts스프링의 포인트컷 모델은 advice 유형과 독립적으로 포인트컷을 재사용할 수 있게 해줍니다. 동일한 포인트컷으로 다양한 어드바이스를 타겟팅할 수 있습니다.org.springframework.aop.Pointcut 인터페이스는 특정 클래스와 메서드를 타겟으로 어드바이스를 지정하기 위해 사용하는 핵심 인터페이스입니다. 전체 인터페이스는 다음과 같습니다:public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher();}Pointcut 인터페이스를 두 부분으로 나누면 클래스와 메서드 매칭 부분을 재사용하고, ..
2023.05.03 -
Concise Proxy Definitions
특히 트랜잭션 프록시를 정의할 때, 유사한 프록시 정의가 많이 생길 수 있습니다. 부모-자식 빈 정의와 내부 빈 정의를 사용하면 훨씬 깔끔하고 간결한 프록시 정의를 만들 수 있습니다.먼저, 다음과 같이 프록시를 위한 부모(템플릿) 빈 정의를 생성합니다:XML 기반 구성: PROPAGATION_REQUIRED 자바 기반 구성:@Configurationpublic class AppConfig { @Bean public TransactionProxyFactoryBean txProxyTemplate(TransactionManager transactionManager) { TransactionProxyFactoryBean ..
2023.05.03