6.6 ProxyFactory를 사용하여 프로그래밍 방식으로 AOP 프록시 만들기 by sh

6.6. ProxyFactory를 사용하여 프로그래밍 방식으로 AOP 프록시 만들기

AOP 프록시

  • 스프링은 프록시를 이용하여 AOP를 구현한다. (스프링은 Aspect의 적용 대상이 되는 객체에 대한 프록시를 만들어서 제공)

  • 대상 객체를 사용하는 코드는 대상 객체를 Proxy를 통해서 간접적으로 접근한다. (프록시는 공통기능 advice를 실행한 뒤 대상 객체의 실제 메서드를 호출하거나, 또는 대상 객체의 실제 메소드가 호출된 뒤 공통기능 advice를 실행한다)

Spring을 사용하여 프로그래밍 방식으로 AOP 프록시를 만드는 것은 쉽습니다. 이렇게하면 Spring IoC에 의존하지 않고 Spring AOP를 사용할 수있습니다.

대상 객체에 의해 구현 된 인터페이스는 자동으로 프록시됩니다. 다음 목록은 하나의 interceptor와 하나의 advisor를 사용하여 대상 객체에 대한 프록시 생성을 보여줍니다.

ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);
factory.addAdvice(myMethodInterceptor);
factory.addAdvisor(myAdvisor);
MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();

첫 번째 단계는 org.springframework.aop.framework.ProxyFactory 유형의 객체를 생성하는 것입니다. 앞의 예에서와 같이 대상 객체를 사용하여이 객체를 만들거나 대체 생성자에서 프록시 할 인터페이스를 지정할 수 있습니다.

advice (특수한 종류의 advice인 인터셉터 포함), advisor를 추가할 수 있고 ProxyFactory의 수명 동안 조작 할 수 있습니다. IntroductionInterceptionAroundAdvisor를 추가하면 프록시가 추가 인터페이스를 구현할 수 있습니다.

before 및 throws advice와 같은 다른 advice 타입을 추가 할 수있는 ProxyFactory (AdvisedSupport에서 상속)에 대한 편리한 메소드도있습니다. AdvisedSupportProxyFactoryProxyFactoryBean의 수퍼 클래스입니다.

advisor : 인트로덕션 advice를 제외한 1개의 advice와 1개의 pointcut을 포함하는 aspect

대부분의 응용 프로그램에서 AOP 프록시 작성을 IoC 프레임 워크와 통합하는 것이 가장 좋습니다. Java 코드에서 AOP를 사용하여 구성을 외부화하는 것이 좋습니다.

Last updated