728x90
반응형
1. applicationContext.xml에서 스프링 컨테이너에게 지금부터 AOP 설정을 @로 한다고 선언
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<context:component-scan base-package="com.kim.biz" />
<!-- 해당 태그를 사용하므로 aop를 어노테이션으로 하겠다는 의미 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy> -->
</beans>
2. LogAdvice.java 해당 파일에 Aspect, Pointcut 설정
@Before("aPointcut()) : aPointcut과 연결한다는 뜻
@Service를 상단에 기입하여 객체화
package com.kim.biz.common;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Service;
@Service
@Aspect //aspect 처리된 횡단관심사야
public class LogAdvice {
//내가 이용할 횡단관심 위에 사용
@Pointcut("execution(* com.kim.biz..*Impl.*(..))")
public void aPointcut() {}
@Pointcut("execution(* com.kim.biz..*Impl.select*(..))")
public void bPointcut() {}
@Before("aPointcut()")
public void printLog(JoinPoint jp) {
String methodName=jp.getSignature().getName();
//현재 수행중인 포인트컷(핵심로직,CRUD)의 메서드명
Object[] args=jp.getArgs();
//현재 수행중인 포인트컷(핵심로직,CRUD)이 사용하는 인자들의 정보
System.out.println("수행중인 핵심메서드명: " + methodName);
System.out.println("사용하는 인자 ");
System.out.println("==========");
for(Object v:args) {
System.out.println(v);
}
}
}
3. 수행결과
xml파일로 설정한 것과 동일한 결과가 나옴
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] MVC2 패턴 동작과정1 (0) | 2022.09.20 |
---|---|
[Spring] JDBC Template 사용 (0) | 2022.09.18 |
[Spring] Joinpoint, 바인드 변수 (0) | 2022.09.16 |
[Spring] AOP 관점 지향 프로그래밍, Advice 동작시점 (0) | 2022.09.16 |
[Spring] DB 연결 (MVC패턴) (0) | 2022.09.16 |