[Spring] AOP 주의 사항 내부 호출


[Spring] AOP 주의 사항 내부 호출

프록시 내부 호출 문제 Spring은 프록시 방식의 AOP 사용 AOP를 적용하려면 항상 프록시를 통해서 대상 객체를 호출해야 함 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, Advice도 호출되지 않음 프록시 객체 주입 AOP를 적용하면 스프링은 대상 객체 대신 Proxy를 스프링 빈으로 등록함 그렇기에 의존관계 (DI) 주입 시에 항상 프록시 객체를 주입함 하지만 대상 객체 내부에서 메서드 호출이 발생하면 프록시를 거치지 않고 대상 객체를 직접 호출하는 문제 발생함 예제 코드 AOP를 적용할 LogAspect를 만들어준다. AOP를 적용할 Class를 만들어주고 메서드를 2개 만들어준다. 이때 external에서 internal를 호출하게 만들어준다. 테스트 코드를 만들고 각각 external, internal을 호출해 본다. 먼저 외부 메서드만 호출해서 로그를 보면 external에만 AOP가 적용된 걸 볼 수 있다. 위의 사항을 그림으로 나타...


#AOP #springaop #내부호출 #스프링 #스프링AOP내부호출

원문링크 : [Spring] AOP 주의 사항 내부 호출