목록2024/10/01 (2)
오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > 직접 만든 포인트컷이전 글에는 save(), find() 모두 어드바이스 로직이 적용되었다.이번에는 save()메서드에만 어드바이스 로직이 적용되도록 해보자. 이전에 했듯, 어드바이스에 로직을 추가하여 메서드 이름을 보고 분기를 통해 수행할 수도 있지만, 이런 기능을 특화하여 제공하는 것이 포인트컷이다.해당 요구사항을 만족하도록 포인트컷을 직접 구현해보자. public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher();} public interface ClassFilter { boolean matches(Class clazz);} public inter..
스프링 핵심 원리 - 고급편 > 어드바이저이전 글에서 봤듯, 어드바이저는 하나의 포인트컷과 어드바이스를 가지고 있다.프록시 팩토리를 통해 프록시 생성 시 어드바이저를 제공하면 어디에 어떤 기능을 제공할 지 알 수 있다.public class AdvisorTest { @Test void advisorTest1() { ServiceImpl target = new ServiceImpl(); ProxyFactory proxyFactory = new ProxyFactory(target); DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(Pointcut.TRUE, new TimeAdvice()); proxyFactory.addAdv..