AOP는 Aspect Oriented Programming의 약자로 우리말로는 관점 지향 프로그래밍이라고 한다.
여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로, 재사용성을 높여주는 프로그래밍 기법이라고 한다.
AOP의 주요 용어는 아래와 같다.
아래 내용은 초보 웹 개발자를 위한 Spring4 프로그래밍 입문 에서 발췌하였다.
용어 |
의미 |
Joinpoint |
Advice를 적용 가능한 지점. 메서드 호출, 필드 값 변경 등이 Joinpoint에 해당한다. 스프링은 프록시를 이용해서 AOP를 구현하기 때문에 메서드 호출에 대한 Joinpoint만 지원한다. |
Pointcut |
Joinpoint의 부분 집합으로서 실제로 Advice가 적용되는 Joinpoint를 나타낸다. 스프링에서는 정규 표현식이나 AspectJ의 문법을 이용하여 Pointcut을 정의할 수 있다. |
Advice | 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의 한다. |
Weaving |
Advice를 핵심 로직 코드에 적용하는 것. |
Aspect |
여러 객체에 공통으로 적용되는 기능 Aspect라고 한다. 트랜잭션이나 보안 등이 Aspect의 좋은 예이다. |
Advice의 종류는 아래와 같다.
용어 |
의미 |
Before Advice |
대상 객체의 메서드 호출 전에 공통 기능을 실행한다. |
After Returning Advice |
대상 객체의 메서드가 익셉션 없이 실행된 이후에 공통 기능을 실행한다. |
After Throwing Advice |
대상 객체의 메서드를 실행하는 도중 익셉션의 발생한 경우에 공통 기능을 실행한다. |
After Advice |
대상 객체의 메서드 실행 후 공통 기능을 실행한다. 익셉션 발생 여부와 상 관없이 실행한다. |
Around Advice |
대상 객체의 메서드 실행 전, 후 또는 익셉션 발생 시점에 공통 기능을 실행하는데 사용된다. |
'Java > Spring' 카테고리의 다른 글
Spring Security Basic 인증 비활성화 설정 (0) | 2016.02.17 |
---|---|
Aspect 어노테이션 사용을 위한 설정. (0) | 2016.01.25 |
스프링 Bean 객체의 초기화 및 소멸시 호출 메서드 (0) | 2016.01.22 |
스프링 Java 설정에서 XML 설정 참조하기. (0) | 2016.01.22 |
스프링 XML 설정에서 자바 설정 Import하기 (0) | 2016.01.22 |