분류 전체보기(359)
-
Aspect Oriented Programming with Spring
[공식문서]AOP(Aspect-Oriented Programming)는 프로그램 구조를 생각하는 또 다른 방법을 제공하여 OOP(Object-Oriented Programming)를 보완합니다. OOP에서의 주요 모듈화 단위는 클래스인 반면, AOP에서는 모듈화 단위가 aspect입니다. aspect는 트랜잭션 관리와 같은 여러 타입과 객체에 걸쳐 있는 문제를 모듈화할 수 있게 해줍니다. 이러한 문제는 AOP 문헌에서 흔히 crosscutting concerns라고 불립니다.Spring의 주요 구성 요소 중 하나는 AOP 프레임워크입니다. Spring IoC 컨테이너는 AOP에 의존하지 않으므로(AOP를 사용하지 않아도 된다는 의미) AOP를 꼭 사용해야 하는 것은 아니지만, AOP는 Spring IoC..
2024.11.17 -
Using the "auto-proxy" facility
Using the "auto-proxy" facility지금까지 우리는 ProxyFactoryBean 또는 유사한 팩토리 빈을 사용하여 명시적으로 AOP 프록시를 생성하는 방법을 살펴보았습니다.Spring에서는 선택된 빈 정의를 자동으로 프록시할 수 있는 "auto-proxy" 빈 정의를 사용할 수도 있습니다. 이는 컨테이너가 로드될 때 모든 빈 정의를 수정할 수 있는 Spring의 "bean post processor" 인프라에 기반합니다.이 모델에서는 XML 빈 정의 파일에서 몇 가지 특별한 빈 정의를 설정하여 auto-proxy 인프라를 구성합니다. 이를 통해 자동 프록시 대상 자격이 있는 객체를 선언할 수 있으며, ProxyFactoryBean을 사용할 필요가 없습니다.이를 수행하는 두 가지 방법..
2024.11.17 -
Manipulating Advised Objects
AOP 프록시를 생성하는 방법에 관계없이, org.springframework.aop.framework.Advised 인터페이스를 사용하여 프록시를 조작할 수 있습니다. AOP 프록시는 구현한 다른 인터페이스에 관계없이 이 인터페이스로 캐스팅할 수 있습니다. 이 인터페이스에는 다음과 같은 메서드들이 포함되어 있습니다:Advisor[] getAdvisors();void addAdvice(Advice advice) throws AopConfigException;void addAdvice(int pos, Advice advice) throws AopConfigException;void addAdvisor(Advisor advisor) throws AopConfigException;void addAdvisor(..
2024.11.17 -
Creating AOP Proxies Programmatically with the ProxyFactory
Spring을 사용하면 AOP 프록시를 프로그래밍 방식으로 쉽게 생성할 수 있습니다. 이를 통해 Spring IoC에 의존하지 않고도 Spring AOP를 사용할 수 있습니다.대상 객체가 구현한 인터페이스는 자동으로 프록시됩니다. 아래 예시는 하나의 인터셉터와 하나의 어드바이저를 사용하여 대상 객체에 대한 프록시를 생성하는 방법을 보여줍니다:ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);factory.addAdvice(myMethodInterceptor);factory.addAdvisor(myAdvisor);MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();첫 번째 단..
2024.11.17 -
The Advisor API in Spring
Spring에서 Advisor는 포인트컷 표현식과 연관된 단일 어드바이스 객체만을 포함하는 애스펙트입니다.도입(introductions)의 특별한 경우를 제외하고, 모든 어드바이저는 모든 어드바이스와 함께 사용할 수 있습니다. org.springframework.aop.support.DefaultPointcutAdvisor는 가장 일반적으로 사용되는 어드바이저 클래스입니다. 이 클래스는 `MethodInterceptor, BeforeAdvice, 또는 ThrowsAdvice와 함께 사용할 수 있습니다.Spring에서는 동일한 AOP 프록시에서 어드바이저와 어드바이스 타입을 혼합할 수 있습니다. 예를 들어, 하나의 프록시 구성에서 인터셉션 around 어드바이스, throws 어드바이스, 그리고 befor..
2024.11.17 -
Advice API in Spring
Spring AOP에서 어드바이스(Advice)를 다루는 방법을 살펴보겠습니다.Advice Lifecycles각 어드바이스는 Spring 빈(bean)입니다. 어드바이스 인스턴스는 모든 타겟 객체에 공유될 수 있으며, 각 타겟 객체에 고유하게 존재할 수도 있습니다. 이는 클래스별 혹은 인스턴스별 어드바이스에 해당합니다.클래스별 어드바이스는 일반적으로 사용됩니다. 이는 프록시 객체의 상태에 의존하지 않거나 새로운 상태를 추가하지 않는 트랜잭션 어드바이저와 같은 일반적인 어드바이스에 적합합니다. 이러한 어드바이스는 메서드와 아규먼트에 대해 작동합니다.인스턴스별 어드바이스는 믹스인을 지원하기 위해 사용됩니다. 이 경우 어드바이스는 프록시 객체에 상태를 추가합니다.동일한 AOP 프록시에서 공유 어드바이스와 인스..
2024.11.17