TIL

[TIL] Spring AOP

yjyj0101 2024. 2. 19. 21:37

1. AOP란?

  • Spring AOP는 스프링 프레임워크에서 제공하는 기능 중 하나로 관점 지향 프로그래밍을 지원하는 기술
  • 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화 하여 코드 중복을 줄이고 유지 보수성을 향상
  • 여러 개의 클래스에서 반복해서 사용하는 코드가 있다면 해당 코드를 모듈화 하여 공통 관심사로 분리함
  • 핵심 관심사 : 각 객체가 가져야 할 본래의 기능
  • 공통 관심사 : 여러 객체에서 공통적으로 사용되는 코드

 

2. 언제 사용되는지

https://adjh54.tistory.com/133

 

클래스 A에서 주황색 블록을 수정을 하게 되면 클래스 B, C에서도 수정이 필요함 

AOP 사용 후 ) Aspect X에서는 공통 관심사인 주황색 블록을 묶어서 모듈화를 시켜서 코드의 재 사용성과 유지 보수성을 강화

 

 

3. 관련 용어

용어 설명
Aspect - 공통적인 기능들을 모듈화 한것을 의미합니다.
Target - Aspect가 적용될 대상을 의미하며 메소드, 클래스 등이 이에 해당 됩니다.
Join point - Aspect가 적용될 수 있는 시점을 의미하며 메소드 실행 전, 후 등이 될 수 있습니다.
Advice - Aspect의 기능을 정의한 것으로 메서드의 실행 전, 후, 예외 처리 발생 시 실행되는 코드를 의미합니다.
Point cut - Advice를 적용할 메소드의 범위를 지정하는 것을 의미합니다.

 

 

4. 주요 어노테이션

메서드 설명
@Aspect 해당 클래스를 Aspect로 사용하겠다는 것을 명시합니다.
@Before 대상 “메서드”가 실행되기 전에 Advice를 실행합니다.
@AfterReturning 대상 “메서드”가 정상적으로 실행되고 반환된 후에 Advice를 실행합니다.
@AfterThrowing 대상 “메서드에서 예외가 발생”했을 때 Advice를 실행합니다.
@After 대상 “메서드”가 실행된 후에 Advice를 실행합니다.
@Around 대상 “메서드” 실행 전, 후 또는 예외 발생 시에 Advice를 실행합니다.

 

 

출처 : https://adjh54.tistory.com/133