Spring[Info] - Spring Triangle_AOP
2021. 7. 2. 14:18ㆍSpring/Spring[Info]
반응형
🤔 AOP?(Aspect Oriented Programming)
- 관점 지향 프로그래밍
- 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것
주요 개념
- Aspect
- 여러 곳에서 쓰이는 코드 (공통 부분)을 모듈화한 것
- Target
- Aspect 가 적용되는 곳
- Advice
- Aspect 에서 실질적인 기능에 대한 구현체
- Joint point
- Advice가 Target에 적용되는 시점
- 메서드 진입할 때, 생성자 호출할 때, 필드에서 값을 꺼낼 때 등등
- Point cut
- Joint point의 상세 스팩을 정의한 것
AOP 구현체
- AspectJ
- 스플링 AOP
AOP 적용 방법
- 컴파일 (AspectJ)
- 로드 타임 (AspectJ)
- 런타임 (스프링 AOP)
🤔 스프링 AOP?
- 프록시 기반의 AOP 구현체
- 스프링 빈에만 AOP를 적용할 수 있다.
- 동적 프록시 빈을 만들어 등록시켜준다.
- 빈 라이프사이클 중 실행되는 BeanPostProcessor 구현체를 구현함
- AbstractAutoProxyCreator implements BeanPostProcessor
참고, 구현 예제
반응형