개발 관련 부가 지식/자바, 스프링

프록시 팩토리 복습 중~

Developer-Choi 2022. 12. 26. 11:48
728x90
728x90

프록시 팩토리- 스프링에서 동적프록시(JDK 동적프록시, CGLIB)을 통합해서 편리하게 사용하게끔 제공해준 템플릿✨

 

인터페이스가 있으면 JDK 동적프록시 사용, 구체클래스면 CGLIB을 사용하여 동적 프록시 생성을 함, 설정 가능

 

인터페이스, 클래스에 따라 프록시 팩토리에서 adviceInvocationHandler( JDK 동적프록시), adviceMethodInterceptor(CGLIB)를 사용하여 advcie를 호출함

 

advice 생성 방법 👀

- MethodInterceptor(aopalliance 패키지)을 implments 하여 부가 로직을 작성하고 invaction.proceed()로 프록시 대상이 될 실제 객체 로직을 호출하면 된다. 

 

proxyFactory 생성방법 👀

- proxyFactory proxy = new ProxyFactory(위에서 만든 advice 클래스 주입)

 

proxy.save()로 실행 가능

 

프록시 팩토리로 만들었을 때 프록시인지 확인 방법

Assetions.assertThat(AopUtils.isAopProxy(proxy)).isTrue();

 

AOP에서 용어 정리

포인트컷 : 부가기능을 어디에 적용할지 필터링 하는 로직

어드바이스 : 프록시에 추가된 부가 기능

어드바이저 : 하나의 포인트컷 + 하나의 어드바이스