목록2024/10/03 (3)
오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > 프록시 팩토리 적용 1지금까지 학습한 프록시 팩토리를 사용해서 애플리케이션에 프록시를 만들어보자.먼저 인터페이스가 있는 v1 애플리케이션에 LogTrace기능을 프록시 팩토리를 통해서 프록시를 만들어 적용해보자.public class LogTraceAdvice implements MethodInterceptor { private final LogTrace logTrace; public LogTraceAdvice(LogTrace logTrace) { this.logTrace = logTrace; } @Override public Object invoke(MethodInvocation invocation) throws Throwable { TraceStat..
스프링 핵심 원리 - 고급편 > 여러 어드바이저 함께 적용어드바이저는 하나의 포인트컷과 하나의 어드바이저를 가지고 있다.만약 여러 어드바이저를 하나의 target에 적용하려면 어떻게 해야할까?가장 당장 떠오르는 방법은 프록시를 여러 개 만들면 될 거 같다.public class MultiAdvisorTest { @Test void multiAdvisorTest1() { // client -> proxy2(advisor2) -> proxy1 (advisor1) -> target // Create proxy1 ServiceInterface target = new ServiceImpl(); ProxyFactory proxyFactory1 = new ProxyFactory(target)..
스프링 핵심 원리 - 고급편 > 스프링이 제공하는 포인트컷사실 스프링에서 우리가 필요한 포인트컷의 대부분을 이미 제공한다.이번에는 스프링이 제공하는 NameMatchMethodPointcut을 사용해서 구현해보자 @Test void advisorTest3() { ServiceImpl target = new ServiceImpl(); ProxyFactory proxyFactory = new ProxyFactory(target); NameMatchMethodPointcut pointcut = new NameMatchMethodPointcut(); pointcut.setMappedName("save"); DefaultPointcutAdvisor advisor = new Defau..