목록2024/11/02 (3)
오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > @Aspect 프록시 - 설명앞서 자동 프록시 생성기를 학습할 때, 자동 프록시 생성기(AnnotationAwareAspectJAutoProxyCreator)는 Advisor를 자동으로 찾아와서 필요한 곳에 프록시를 생성하고 적용해준다고 했다.자동 프록시 생성기는 여기에 추가로 하나의 역할을 더 하는데, 바로 @Aspect를 찾아서 이것을 Advisor로 만들어준다.쉽게 이야기해서 지금까지 학습한 기능에 더해 @Aspect를 Advisor로 변환해서 저장하는 기능도 한다.그래서 이름 앞에 AnnotationAware(어노테이션을 인식하는)가 붙어 있는 것이다.자동 프록시 생성기는 2가지 일을 한다.@Aspect를 보고 어드바이저(Advisor)로 변환해서 저장한다.어드바이..
스프링 핵심 원리 - 고급편 > @Aspect 프록시 - 적용스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성된 어드바이저를 만들어서 스프링 빈으로 등록하면 된다.그럼 나머지는 자동 프록시 생성기가 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저들을 찾고, 스프링 빈들에 자동으로 프록시를 적용해준다. (당연히 포인트컷에 매치가 되어야 한다.)스프링은 @Aspect 애노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구성되어 있는 어드바이저 생성 기능을 지원한다.참고: @Aspect는 관점 지향 프로그래밍(AOP)을 가능하게 하는 AspectJ 프로젝트에서 제공하는 어노테이션이다. 스프링은 이것을 차용해서 프록시를 통한 AOP를 가능하게 한다. AOP와 AspectJ ..
스프링 핵심 원리 - 고급편 > 하나의 프록시, 여러 Advisor 적용스프링 빈이 advisor1, advisor2가 제공하는 포인트컷의 조건을 모두 만족하면 프록시 자동 생성기는 프록시를 몇 개 생성할까?프록시 자동 생성기는 프록시를 하나만 생선한다. 왜냐면 프록시 팩토리가 생성하는 프록시는 내부에 여러 advisor를 포함할 수 있기 때문이다.따라서 프록시를 여러 개 생성하여 비용을 낭비할 이유가 없다.프록시 자동 생성기 상황별 정리advisor1 의 포인트컷만 만족 프록시1개 생성, 프록시에 advisor1 만 포함advisor1 , advisor2 의 포인트컷을 모두 만족 프록시1개 생성, 프록시에 advisor1 , advisor2 모두 포함advisor1 , advisor2 의 포인트컷을 모..