AOP (Aspect Oriented Programming)
- 비즈니스 로직과 공통 로직을 분리 하여 비즈니스 로직에 영향을 미치지 않고 공통 로직을 앞 뒤로 끼워넣는(?) 방법
- ex) logging, transaction 처리, 사용자 인증 등
AOP 구성요소
1. Target : Aspect 부여 대상
2. JoinPoint : Aspect가 적용 될 시점(위치)
- Before, After, AfterReturning, AfterThrowing, Around
3. Advice : 각 JoinPoint에 삽입되어 동작할 모듈
4. PointCut : Advice를 적용할 JoinPoint를 선별하는 기능을 정의하는 모듈
5. Introduction : Target Class에 코드 변경 없이 메소드나 필드를 추가하는 기능
6. Aspect : 부가기능 모듈 {PointCut + Advice + Introduction(옵션)}
7. Proxy : Target을 감싸서 요청을 대신 받아주는 객체
8. Weaving : PointCut에 의해 결정 된 JoinPoint에 지정된 Aspect를 삽입하는 과정(새로운 Proxy 객체를 생성)
[참조]
'자바 > 스프링' 카테고리의 다른 글
Spring Bean Scope (0) | 2019.04.04 |
---|---|
Spring Transaction (0) | 2019.03.15 |
IoC(Inversion of Controll) - 제어의 역전 (0) | 2019.02.13 |
DispatcherServlet (0) | 2019.02.11 |
Spring Bean 설정(XML) (0) | 2016.06.09 |