第一,修改 Spring 的配置文件 applicationContext.xml
<? 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:aop = " http://www.springframework.org/schema/aop "
xmlns:tx = " http://www.springframework.org/schema/tx "
xsi:schemaLocation = " http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd " >
第二,添加AOP定义
<!-- ***************************AOP的定义 begin***********************************-->
<!-- 自定义 Aspect -->
< bean id = "logBeforeAdvice" class = "com.accp.util.MyLogger" />
< aop:config >
< aop:aspect id = "logging" ref = "logBeforeAdvice" > <!-- 前置 -->
< aop:before method = "before"
pointcut = "execution(* com.accp.service.*.*(..))" />
< aop:after-returning method = "afterReturning"
pointcut = "execution(* com.accp.service.*.*(..))" /> <!-- 后 置 -->
< aop:after-throwing pointcut = "execution(* com.accp.service.*.*(..))"
throwing = "throwable" method = "afterThrowing" />
</ aop:aspect >
</ aop:config >
<!--***************************AOP的定义 end***********************************-->
第三,使用代码
package com.accp.util;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.lang.reflect.Method;
import org.aspectj.lang.JoinPoint;
import org.springframework.aop.MethodBeforeAdvice;
public class MyLogger {
private Logger logger = Logger. getLogger ( this .getClass().getName());
public void before(JoinPoint jointPoint) throws Throwable {
// System.out.println("--------------begin-------------");
logger .log(Level. INFO , "<<<<<method starts..."
+ jointPoint.getSignature().getDeclaringTypeName() + "."
+ jointPoint.getSignature().getName() + ">>>>>>" );
}
public void afterReturning(JoinPoint jointPoint) {
// System.out.println("-------------end-----------------");
logger .log(Level. INFO , "<<<<<method ends..."
+ jointPoint.getSignature().getDeclaringTypeName() + "."
+ jointPoint.getSignature().getName() + ">>>>>>" );
}
}