Spring Framework/Aspect Oriented Programming with Spring(29)
-
Spring instrument
Spring Instrument란?Spring Instrument는 Spring 프레임워크에서 제공하는 Java Instrumentation API 기반의 Java Agent로, Spring 애플리케이션에서 클래스를 동적으로 조작할 수 있도록 도와주는 모듈이다.Spring Instrument는 Spring AOP 및 Load Time Weaving(LTW)과 함께 사용되며, 특정 기능(예: AspectJ)에서 런타임에 클래스를 수정하거나 프록시를 생성하는 기능을 제공한다.1. Spring Instrument의 주요 역할Spring Instrument 모듈은 Spring 애플리케이션의 동적 바이트코드 조작을 지원하는 역할을 한다.📌 주요 역할Spring AOP 및 Load Time Weaving(LTW)..
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