Spring Framework/Aspect Oriented Programming with Spring(23)
-
Enabling @AspectJ Support
@AspectJ aspect를 기반으로 Spring AOP를 구성하고, 이 aspect에 의해 advice되는지 여부에 따라 빈을 auto-proxying하는 Spring 지원 기능을 활성화해야 합니다. auto-proxying는 Spring이 특정 빈이 하나 이상의 aspect에 의해 어드바이스된다고 판단할 경우, 해당 빈에 대해 메서드 호출을 가로채고 필요한 경우 어드바이스를 실행할 수 있도록 자동으로 프록시를 생성하는 것을 의미합니다.@AspectJ 지원은 XML 또는 Java 기반 구성으로 활성화할 수 있습니다. 두 경우 모두 애플리케이션의 클래스패스에 AspectJ의 aspectjweaver.jar 라이브러리(버전 1.9 이상)를 포함해야 합니다. 이 라이브러리는 AspectJ 배포판의 lib ..
2024.11.17 -
Programmatic Creation of @AspectJ Proxies
또는 를 사용하여 설정에서 aspect를 선언하는 것 외에도, 타겟 객체를 어드바이스하는 프록시를 프로그래밍 방식으로 생성할 수도 있습니다. Spring AOP API에 대한 전체 자세한 내용은 다음 장을 참조하세요. 여기서는 @AspectJ aspect를 사용하여 자동으로 프록시를 생성하는 기능에 중점을 두고 설명하겠습니다.org.springframework.aop.aspectj.annotation.AspectJProxyFactory 클래스를 사용하여 하나 이상의 @AspectJ aspect에 의해 어드바이스된 타겟 객체에 대한 프록시를 생성할 수 있습니다. 이 클래스의 기본 사용법은 매우 간단하며, 다음 예제가 이를 보여줍니다:// 주어진 타겟 객체에 대한 프록시를 생성할 수 있는 팩토리를 생성합니다..
2024.11.15 -
Delegate
보호되어 있는 글입니다.
2023.12.10 -
Mixin 디자인 패턴
보호되어 있는 글입니다.
2023.12.10 -
Java Instrument API vs ASM(Abstract Syntax Manipulation)
Java Instrumentation API와 ASM은 모두 Java 바이트코드 조작을 가능하게 하는 도구이지만, 그 목적과 사용 방식이 다릅니다. 이 둘은 서로 보완적으로 사용될 수 있으며, Instrumentation API는 ASM과 같은 라이브러리와 함께 사용되어 바이트코드를 런타임에 조작할 수 있습니다.Java Instrumentation API주요 목적: Instrumentation API는 Java 애플리케이션에서 런타임 시 클래스의 바이트코드를 조작할 수 있는 기능을 제공합니다. 주로 Java Agent를 통해 사용되며, JVM에서 클래스가 로드되기 전이나 이미 로드된 후에 바이트코드를 수정할 수 있습니다.역할: Instrumentation API는 클래스 로딩 과정에 개입할 수 있는 메커..
2023.06.10 -
Using AspectJ with Spring Applications
이전까지 다룬 내용은 순수한 Spring AOP에 대한 것이었습니다. 이 섹션에서는 AspectJ 컴파일러나 위버(weaver)를 Spring AOP 대신 또는 함께 사용하여, Spring AOP가 제공하는 기능 이상이 필요한 경우 이를 어떻게 활용할 수 있는지 살펴보겠습니다.1. 스프링에서 AspectJ 소개Spring AOP vs. AspectJ: Spring AOP는 더 넓은 AspectJ 프레임워크의 하위 집합입니다. Spring AOP는 기업 애플리케이션의 일반적인 문제를 해결하도록 설계되었지만, 메서드 수준의 인터셉션에만 한정되며 필드 수준이나 생성자 수준의 인터셉션을 지원하지 않습니다. 반면에 AspectJ는 이를 지원합니다.왜 AspectJ를 사용해야 하는가: AspectJ는 더 강력하고 ..
2023.05.26