개발 관련 부가 지식/자바, 스프링
프록시 팩토리 복습 중~
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에서 용어 정리
포인트컷 : 부가기능을 어디에 적용할지 필터링 하는 로직
어드바이스 : 프록시에 추가된 부가 기능
어드바이저 : 하나의 포인트컷 + 하나의 어드바이스