读书人

Spring AOP annotation 阻截表达式 分

发布时间: 2012-10-08 19:54:56 作者: rapoo

Spring AOP annotation 拦截表达式 分析

在app.xml中要加入aop的命名空间,看

http://static.springsource.org/spring/docs/2.0.x/reference/aop.html#aop-ataspectj

?

然后开启aop

<aop:aspectj-autoproxy />

?

在定义AOP的类中,要写@Aspect,表示这是个切面

还要加上@Component,让此aop交给Spring 管理

?

1、

 @Pointcut("execution(* com.mhm.mng.impl..*.*(..))")

?第一个*表示 返回类型

如果写成java.lang.String 则表示只对com.mhm.mng.impl 下的类以及子包下的类和方法进行拦截

*.*表示 类下面的方法

(..)表示方法中的参数随意

?

2、

 com.mhm.mng.impl..*(..) 

?表示对com.mhm.mng.impl下的类以及子包下的类进行拦截

?

3、

com.mhm.mng.impl.PersonalMngimpl.*(..) 

表示对表示对com.mhm.mng.impl下的PersonalMngimpl的所有方法进行拦截

?

4、

方法参数:

 @Pointcut("execution(* com.mhm.mng.impl..*.*(java.lang.String, ..))")

?表示如果方法第一个参数为String类型,第二个参数可有可无

?

?

5、拦截所有的返回值不是void的方法

@Pointcut("execution(!void com.mhm.mng.impl..*.*(java.lang.String, ..))")
1 楼 tomfish88 2012-05-17 比如我要拦截不同业务的service类里面的方法
@Pointcut("execution(* *Service.*(..))") 我这样写怎么不好用呢

读书人网 >编程

热点推荐