공통적인 관심사를 모듈화 하는 방식으로 코드 중복을 줄이고 유지 보수성을 향상하는데 도움을 줌. 공통 관심사를 Aspect로 정의하고 Aspect를 적용할 메소드나 클래스에 Advice를 적용.
주요 용어 이해하기
Aspect : 공통적인 기능들을 모듈화 한것을 의미.
Target : 적용될 대상을 의미
Join point : 적용 시점을 의미하며 메소드 실행 전, 후 등이 될 수 있음.
Advice : 메서드 실행 전, 후, 예외 처리 발생 시 실행되는 코드.
Point cut : Advice를 적용할 메소드의 범위를 지정.
주요 어노테이션
@Aspect Aspect로 사용하겠음.
@Before 매서드 실행 전에 Advice를 실행.
@AfterReturning 매서드 실행 후에 정상처리시 Advice를 실행.
@AfterThrowing 매서드 실행 후에 예외 발생시 Advice를 실행.
@After 매서드 실행 후에 Advice를 실행.
@Around 매서드 실행 전, 후 또는 예외 발생 시에 Advice를 실행.
사용시 의존성을 추가해 줍니다.
implementation 'org.springframework.boot:spring-boot-starter-aop'