AOP(Aspect Oriented Programming)

바그다드·2023년 2월 9일
0
post-thumbnail

관점 지향 프로그래밍

ex) 모든 메서드에 걸리는 시간을 확인하고 싶을 때
공통 관심 사항과 핵심 관심 사항을 분리
원하는 곳에 공통 관심 사항을 적용

aop 적용 전

  • 핵심 관심 사항과 공통 관심 사항의 구분이 모호함
  • 공통 관심 사항의 로직을 적용하거나 수정하기 위해서는 모든 타겟을 수정해야함

aop 적용 후

  • 타겟으로 설정한 메서드에만 공통 로직을 적용시킬 수 있음
  • 핵심 로직을 수정할 필요 없이 공통 로직만 따로 수정이 가능함

타겟 메소드 aspect 실행 시점

  • @Before (이전) : 어드바이스 타겟 메소드가 호출되기 전에 어드바이스 기능을 수행
  • @After (이후) : 타겟 메소드의 결과에 관계없이(즉 성공, 예외 관계없이) 타겟 메소드가 완료 되면 어드바이스 기능을 수행
  • @AfterReturning (정상적 반환 이후)타겟 메소드가 성공적으로 결과값을 반환 후에 어드바이스 기능을 수행
  • @AfterThrowing (예외 발생 이후) : 타겟 메소드가 수행 중 예외를 던지게 되면 어드바이스 기능을 수행
  • @Around (메소드 실행 전후) : 어드바이스가 타겟 메소드를 감싸서 타겟 메소드 호출전과 후에 어드바이스 기능을 수행
profile
꾸준히 하자!

0개의 댓글