코린이의 기술 블로그

스프링 AOP 본문

Java Web

스프링 AOP

미늬온 2021. 11. 12. 20:14

AOP(Aspect Oriented Programming) ? 응집도와 관련된 기능
AOP는 이러한 부가적인 공통 코드들을 효율적으로 관리하는데 주목
AOP메소드마다 공통으로 로깅이나 예외, 트랜젝션 처리 같은 코드들을 횡단 관심(Crosscutting Concerns)
객체지향을 도와주는 역할 OOP(OOP : 객체의 관점에서 프로그래밍 하는 것을 의미)의 한계를 극복

AOP용어

  • Joinpoint : 클라이언트가 호출하는 메소드
  • Pointcut : 필터링된 조인포인트
  • Advice : 횡단 돤심에 해당하는 공통 기능릐 코드를 의미
  • Weaving : 포인트 컷으로 지정한 핵심 관심 메소드가 호출될 때, 어드바이스에 메소드 삽입 과정
  • Aspect : 포인트 컷과 어드바이스의 결합하여 어떤 메소드에 실행할 지 결정
  • Advisor : 애스팩트와 같은 의미

포인트컷 표현식 ?
execution( * com.spring. .*Impl . get*(..) )
리턴 패키지 클래스 매개변수

  • 리턴타입 지정 : '*'을 이용하여 지정한다
  • 패키지 지정 : '*' 나 '..' 을 이용한다
  • 클래스 지정 : '*' 나 '+' 을 이용한다
  • 메소드 지정 : 메소드는 '*' , 매개변수는 '..'을 이용한다
  • 매개변수 지정 : '..' 나 '*' 을 사용, 정확한 타입 지정

AOP 기반 어노테이션

  1. 어노테이션 사용을 위한 스프링 설정
  2. 포인트컷 설정
  3. 어드바이스 설정
    어노테이션 설명
    @Before 실행 전 동작
    @AfterReturning 메소드가 성공적으로 리턴 되면 동작
    @AfterThrowing 메소드 실행 중 예외가 발생하면 동작
    @After 메소드가 실행 된후 무조건 실행
    @Around 호출 자체를 가로채 메소드 실행 전후에 처리할 로직 삽입



728x90

'Java Web' 카테고리의 다른 글

스프링 웹 MVC  (0) 2021.11.14
컨트롤러  (0) 2021.11.13
스프링 어노테이션  (0) 2021.11.11
의존 관계 / 생성자 인젝션 / Setter 인젝션  (0) 2021.11.10
DI(Dependency Injection)  (0) 2021.11.09
Comments