2021. 10. 7. 14:42ㆍspring
- 횡단관심: 메소드마다 공통으로 등장하는 로깅이나 예외, 트랜잭션 처리 같은 코드들
- 핵심관심: 사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스 로직
1. pom.xml 에 AOP 관련 라이브러리 추가
2. aop 네임스페이스 추가
3. LogAdvice 클래스를 스프링 설정 파일에 <bean> 등록
<bean id="log" class="com.springbook.biz.common.LogAdvice"></bean>
4. aop 관련 설정 추가
<aop:config>
<aop:pointcut> 포인트컷을 선언한다, 유일한 id를 할당하여 애스팩트를 설정할 때 포인트컷을 참조하는 용도로 사용한다, expression 속성에 따라 필터링되는 메소드가 달라진다.
<aop:aspect> 핵심관심에 해당하는 포인트컷 메소드와 횡단 관심에 해당하는 어드바이스 메소드를 결합하기 위해 사용
5. 결과 확인
insertBoard() 메서드와 getBoardList() 메서드가 호출될 때 LogAdvice 클래스의 printLog() 메소드가 실행됨
get으로 시작하는 모든 메소드를 포인트컷으로 지정
get으로 시작하는 getBoardList() 메소드 호출되어 객체 리턴된 후 printLog() 메소드가 실행됨
어드바이스 동작 시점
<aop:before>, @Before 비즈니스 메소드 실행 전에 동작
<aop:after-returning>, @AfterReturning 비즈니스 메소드가 성공적으로 리턴되면 동작
<aop:after-throwing>, @AfterThrowing 비즈니스 메소드 실행 중 예외가 발생하면 동작
<aop:after>, @After 비즈니스 메소드가 실행된 후 무조건 실행
<aop:around>, @Around 비즈니스 메소드 실행 전후에 처리할 로직을 삽입할 수 있음
'spring' 카테고리의 다른 글
[스프링JDBC] (0) | 2021.10.08 |
---|---|
[AOP] 어노테이션 기반 (0) | 2021.10.08 |
[어노테이션] (0) | 2021.10.06 |
[의존성주입] Setter 인젝션 (0) | 2021.10.06 |
[의존성주입] 생성자 인젝션 (0) | 2021.10.06 |