프록시 객체 생성에 질문있습니다.
325
작성한 질문수 70
스프링에서는 모든곳에 프록시 객체를 생성하지 않고 자동 프록시생성기가 스프링 컨테이너에 등록된 Advisor를 조회하여 포인트컷을 기준으로 프록시객체 생성여부를 정한다고 개념정리를 하였습니다.
그렇다면 자동 프록시 생성기를 등록하는 implementation 'org.springframework.boot:spring-boot-starter-aop'라이브러리를 등록하지 않는다면 스프링은 프록시 객체를 못만드는 건가요??
저 라이브러리가 없는데 @Transactional이 동작해서 궁금하여 물어보았습니다.
답변 1
4
안녕하세요. 은재님
스프링 부트는 기본으로 다음 라이브러리를 포함합니다.
- org.springframework.boot:spring-boot-starter
여기는 기본으로 스프링 라이브러리인 spring-aop를 포함합니다. 여기에 우리가 아는 Advice, Advisor와 같은 스프링이 AOP를 실행하는데 필요한 요소들이 모두 포함되어 있습니다.
쉽게 이야기해서 스프링 부트를 사용하면 스프링이 제공하는 aop를 사용할 수 있다는 것입니다.
@Transactional도 같은 원리로 사용할 수 있습니다.
(물론 @Transactional을 사용하려면 spring-tx 라이브러리가 필요한데, spring-boot-starter-jdbc, spring-boot-datajpa등을 포함하면 라이브러리에 자동으로 포함됩니다.)
그렇다면 spring-boot-starter-aop는 왜 필요할까요?
이 라이브러리를 포함하면 aspectjweaver라는 라이브러리를 포함하는데 여기에
@Aspect, @Around와 관련된 부분을 포함합니다.
따라서 애노테이션 기반으로 AOP를 적용하려면 이 라이브러리를 추가해야 합니다.
감사합니다.
어드바이스 순서 디폴트 기준이 궁금합니다.
0
55
1
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
0
81
2
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
0
57
1
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
0
54
1
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
0
56
1
대상 클래스에 기본 생성자가 없을 때
0
76
1
스프링 부트 버전 4.0 aop 의존성 명칭 변경
1
362
2
final 키워드 사용 관련 질문
0
78
1
안녕하세요
0
65
1
ThradLocal 실무 사례
0
98
2
실무에서의 동시성 문제
0
63
1
로그 등 부가 기능에 대한 테스트코드
0
50
1
ProceedingJoinPoint와 MethodInvocation에 대하여
0
67
1
실무 멀티스레딩에 대한 궁금증
0
70
1
안녕하세요 질문있습니다
0
45
1
AspectV3 aop 실행 순서 문의 드립니다
0
38
1
MDC vs AOP 중에 고민중입니다.
0
76
1
순환참조
0
161
2
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
0
78
1
빈 후처리에 등록 질문 있습니다.
0
77
1
AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.
0
90
1
ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?
0
118
2
@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부
0
69
1
ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)
0
73
2





