yidasom / hello-spring

spring boot study sample
0 stars 0 forks source link

AOP 기능 확인 및 정리 #4

Open yidasom opened 2 years ago

yidasom commented 2 years ago

Spring

maven (설정)

spring 시작 시, 설정해 놓은 xml 파일에 아래의 코드를 등록한다.


<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
 > 클래스 제일 상단에 @Aspect를 기재해준 뒤에 후에 작성할 코드 위에 상황에 맞게 작성
 > 아래는 Advice종류

@Before("execution(public springframework.com..impl.Impl.selectArticleDetail*(..))")

  • 어드바이스가 주입될 타겟이 호출되기 전에 수행

@After("execution(public springframework.com..impl.Impl.selectArticleDetail*(..))")

  • 타겟이 수행한 내용 결과와 관계없이 수행이 끝나면 어드바이스 주입, 수행

@AfterReturning(pointcut = "execution(public springframework.com..impl.Impl.selectArticleDetail*(..))", returning = "obj")

  • 타겟에 대한 내용이 성공적으로 수행되었을 때 결과값을 반환 후 어드바이스 주입, 수행
  • 해당 매서드의 리턴 객체 그대로 가져올 수 있다.

@AfterThrowing(pointcut = "execution(public springframework.com..impl.Impl.selectArticleDetail*(..))", throwing = "exception")

  • 타켓에 대한 내용에 예외가 생기면 어드바이스 주입, 수행
  • 해당 메서드에서 발생한 예외를 가져올 수 있다.

@Around("execution(public springframework.com..impl.Impl.selectArticleDetail*(..))")

  • 타켓에 대한 내용 수행 전, 후 를 감싸 어드바이스 주입, 수행
yidasom commented 2 years ago

참고 https://yo-hana.tistory.com/12