[Spring] AOP ( Aspect Oriented Programming )

미밈·2023년 3월 11일
0
post-thumbnail
  • 공통 관심 사항과 핵심 관심 사항을 분리

  • 한 군데에 시간 측정 로직을 모으고 원하는 곳에 적용

  • 시간 측정 : 공통 관심 사항
    비지니스 로직 : 핵심 관심 사항
    두가지 섞여 있으면 유지보수가 어렵다.

  • @Aspect
  • joinPoint => 현재 실행되고 있는 메서드가 들어감.
    호출이 될때마다, joinPoint를 이용해서 인터셉팅해서 원하는 메서드 작성 가능
  • @Around : 어디에다 적용할건지 범위를 적용해줌. 타겟팅 가능
    병목이 어디서 되는지 바로 찾을 수 있음

config에 @Bean 등록 스프링 빈에 직접 등록해서 써준다.
@Component로 써도 됨.

❓ 스프링에서 AOP어떻게 작동?
👉 가짜를 미리 등록(복제)해놔서 가짜 spring bean이 끝나면 그제서 진짜 빈을 실행
👉 proxy를 이용해서 실행
👉 joinPoint.proceed()로 실제 빈이 실행된다.

profile
하나씩 차근차근 해보는 초초초급개발자

0개의 댓글