전체 글(333)
-
@Import
@Import 어노테이션을 사용하는 것은 Spring Framework에서 애플리케이션의 구성(Configuration) 메타데이터를 추가하는 방법 중 하나입니다. 이 어노테이션을 통해 다양한 방식으로 구성 클래스를 가져와 애플리케이션 컨텍스트에 등록할 수 있습니다. @Import를 사용하는 방법은 크게 정적 방법과 동적 방법으로 나눌 수 있습니다.정적 방법(Static Method) 정적 방법은 가장 기본적인 @Import 사용 방식으로, 한 개 또는 여러 개의 구성 클래스를 직접 명시합니다. 이 방식은 컴파일 시점에 결정되므로 정적이라고 합니다. 예를 들어, @Configuration 어노테이션이 붙은 Java 클래스에 @Import 어노테이션을 사용하여 다른 구성 클래스들을 명시적으로 지정할 수 있..
2023.05.04 -
Spring AOP APIs 1[Pointcut API in Spring, Advice API in Spring]
https://docs.spring.io/spring-framework/reference/core/aop-api.htmlPointcut API in Spring이 섹션에서는 Spring이 중요한 포인트컷 개념을 어떻게 처리하는지 설명합니다.Concepts스프링의 포인트컷 모델은 advice 유형과 독립적으로 포인트컷을 재사용할 수 있게 해줍니다. 동일한 포인트컷으로 다양한 어드바이스를 타겟팅할 수 있습니다.org.springframework.aop.Pointcut 인터페이스는 특정 클래스와 메서드를 타겟으로 어드바이스를 지정하기 위해 사용하는 핵심 인터페이스입니다. 전체 인터페이스는 다음과 같습니다:public interface Pointcut { ClassFilter getClassFilter()..
2023.05.03 -
Spring AOP APIs 3[Concise Proxy Definitions, Creating AOP Proxies Programmatically with the ProxyFactory, Manipulating Advised Objects, Using the "auto-proxy" facility]
Concise Proxy Definitions특히 트랜잭션 프록시를 정의할 때, 유사한 프록시 정의가 많이 생길 수 있습니다. 부모-자식 빈 정의와 내부 빈 정의를 사용하면 훨씬 깔끔하고 간결한 프록시 정의를 만들 수 있습니다.먼저, 다음과 같이 프록시를 위한 부모(템플릿) 빈 정의를 생성합니다:XML 기반 구성: PROPAGATION_REQUIRED 자바 기반 구성:@Configurationpublic class AppConfig { @Bean public TransactionProxyFactoryBean txProxyTemplate(TransactionManager transactionManager) { Tra..
2023.05.03 -
Instrumentation API vs AspectJ
Instrumentation API와 AspectJ는 서로 독립적인 기술이지만, AspectJ가 AOP(Aspect-Oriented Programming) 기능을 제공하는 데 있어 Instrumentation API를 활용할 수 있는 상황이 존재합니다. 그러나 Instrumentation API는 AOP 기능을 위해 반드시 AspectJ와 협력해야 하는 것은 아닙니다. 이 둘은 각각 다른 목적과 기능을 가지고 있으며, 특정 상황에서 협력할 수 있다는 것이 더 정확한 설명입니다.독립적인 역할Instrumentation API:주된 역할: 클래스 파일을 로드하거나 이미 로드된 클래스의 바이트코드를 런타임에 변경하는 것. AOP는 Instrumentation API의 핵심 기능이 아니며, 이 API는 성능 모..
2023.05.03 -
Structuring method calls
보호되어 있는 글입니다.
2023.05.02 -
type-safe proxy object
보호되어 있는 글입니다.
2023.05.02