Spring[Info] - Spring Triangle_AOP

2021. 7. 2. 14:18Spring/Spring[Info]

반응형

🤔 AOP?(Aspect Oriented Programming)

  • 관점 지향 프로그래밍
  • 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것

주요 개념

  • Aspect
    • 여러 곳에서 쓰이는 코드 (공통 부분)을 모듈화한 것
  • Target
    • Aspect 가 적용되는 곳
  • Advice
    • Aspect 에서 실질적인 기능에 대한 구현체
  • Joint point
    • Advice가 Target에 적용되는 시점
    • 메서드 진입할 때, 생성자 호출할 때, 필드에서 값을 꺼낼 때 등등
  • Point cut
    • Joint point의 상세 스팩을 정의한 것

AOP 구현체

  • AspectJ
  • 스플링 AOP

AOP 적용 방법

  • 컴파일 (AspectJ)
  • 로드 타임 (AspectJ)
  • 런타임 (스프링 AOP)

🤔 스프링 AOP?

  • 프록시 기반의 AOP 구현체
  • 스프링 빈에만 AOP를 적용할 수 있다.
  • 동적 프록시 빈을 만들어 등록시켜준다.
    • 빈 라이프사이클 중 실행되는 BeanPostProcessor 구현체를 구현함
    • AbstractAutoProxyCreator implements BeanPostProcessor

참고, 구현 예제

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

반응형