使用BeanNameAutoProxyCreator实现方法日志代理

使用BeanNameAutoProxyCreator实现方法执行前和执行后的日志记录

首先实现方法执行前和执行后的日志记录

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.andeveloper.springdemo.aop;
 
import java.lang.reflect.Method;
 
import org.apache.log4j.Logger;
import org.springframework.aop.AfterReturningAdvice;
 
public class LogMethodAfterReturningAdvice implements AfterReturningAdvice {
     private static Logger logger = Logger.getLogger(LogMethodAfterReturningAdvice. class );
 
     @Override
     public void afterReturning(Object returnValue, Method method,
             Object[] args, Object target) throws Throwable {
         logger.info(method.getName() + "执行结果为" + returnValue);
     }
 
}




?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.andeveloper.springdemo.aop;
 
import java.lang.reflect.Method;
 
import org.apache.log4j.Logger;
import org.springframework.aop.MethodBeforeAdvice;
 
public class LogMethodBeforeAdvice implements MethodBeforeAdvice {
     private static Logger logger = Logger.getLogger(LogMethodBeforeAdvice. class );
 
     @Override
     public void before(Method arg0, Object[] arg1, Object arg2)
             throws Throwable {
         String args = "" ;
         if (arg1 != null ) {
             for ( int i = 0 ; i < arg1.length; ++i) {
                 if (i != arg1.length - 1 ) {
                     args += arg1[i] + "," ;
                 } else {
                     args += arg1[i];
                 }
             }
         }
         logger.info(arg0.getName() + "方法开始执行,参数为[" + args + "]" );
     }
 
}




配置BeanNameAutoProxyCreator代理,实现所有以Controller,Service,Dao结尾的方法自动代理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
< bean id = "logMethodBefore" class = "com.andeveloper.springdemo.aop.LogMethodBeforeAdvice" />
 
< bean id = "logAfterReturning" class = "com.andeveloper.springdemo.aop.LogMethodAfterReturningAdvice" />
 
< bean class = "org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" >
< property name = "beanNames" >
< list >
< value >*Controller</ value >
< value >*Service</ value >
< value >*Dao</ value >
</ list >
</ property >
< property name = "interceptorNames" >
< list >
< value >logMethodBefore</ value
                 < value >logAfterReturning</ value
</ list >
</ property >
</ bean >


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值