본문 바로가기

Spring

Spring AOP 개념

반응형

Aspect-oriented Programming (AOP)은 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법

스프링 AOP 구현체를 제공하며, 자바에 만들어진 AOP Framework(Aspect J)을 사용할 수 있음.

이 기능을 기반으로 Spring Transaction을 사용할 수 있음.

흩어진 관심사 (Crosscutting Concerns): 여러 클래스, 여러 메서드에 걸쳐 나타나는 코드나 필드 혹은 메서드 등...

AOP를 적용할 경우...

위와 같이 해야 할 일 들을 Aspect로 모듈화 한 것이다. -> Concern 들의 모듈화

 

AOP 주요 개념

  • Aspect : 모듈
  • Target : Aspect가 가지고 있는 Advice가 적용 되는 대상들
  • Advice : 해야 할 일
  • Pointcut : 어디에 적용되어야 하는지
  • Join point : 합류점 - 구체적인 Subset
    • 메서드 실행 시점, 생성자 호출 시점, 필드에 값을 가져갔을 때등등

 

AOP 적용 방법

  • 컴파일 -> java파일을 class파일로 만들 때
  • 로드 타임 
  • ----------------- Aspect J
  • 런타임 -> Proxy 기반의 Spring AOP
반응형

'Spring' 카테고리의 다른 글

Logback 사용하기  (0) 2022.03.06
AWS Amplify  (4) 2021.11.20
JUnit 5  (2) 2021.02.12
리플렉션 API: 클래스 정보 조회  (1) 2021.02.01
Environment - 프로퍼티  (2) 2020.11.25