본문 바로가기
Web/Spring Boot

[Spring] AOP

by foreverever 2019. 6. 26.
반응형

1. AOP(aspect oriented programming)

  • 관점 지향 프로그래밍
  • 공통된 부가기능을 따로 떼어두고 사용
  • 기능을 핵심 로직과 공통 부가로직으로 구분
  • 코드 밖에서 설정
  • OOP의 기본단위는 Class 라면, AOP의 기본단위는 Aspect
  • 예시 : 로그인 인증, 로깅, 트랜잭션 처리

2. AOP 구성요소

  1. aspect

    • 공통 기능(부가 기능)을 가지는 대상
    • advice와 pointcut 으로 구성
    • pointcut(어디에서) + advice(무엇을 할 것인가)
  2. advice

    • 공통 기능(부가 기능)을 담은 구현체
    • aspect의 세부 내용
    • 예시 : 로그인 체크 기능 (SessionCheck)
  3. pointcut

    • advice가 적용될 타겟 지정 기능
    • 타겟 : 어떤 클래스(컨트롤러)의 어느 joinPoint(메서드)
    • 예시 : QuestionController의 updateQuestion()을 지정
  4. weaving

    • 포인트컷(pointcut)에 의해 결정된 조인포인트(joinPoint)에 지정된 어드바이스(advice)를 삽입하는 과정

3. AOP 흐름

 

반응형

'Web > Spring Boot' 카테고리의 다른 글

@EventListener & @PostConstruct  (0) 2022.06.09
[Spring] @RestControllerAdvice  (0) 2019.07.16
[Spring] DI (Dependency Injection)  (0) 2019.06.24
[Spring] Logback 사용법(gradle)  (0) 2019.06.18
[Spring] IoC/DI  (1) 2019.04.21