spring aop 实践

来源:互联网 发布:喜马拉雅电台 知乎 编辑:程序博客网 时间:2024/05/30 20:08


 <bean id="flowSaveAspect" class="com.aop.FlowSaveAspect" /> 
 
 <aop:config >
  <!-- 添加流程保存的切面方法 -->
   <aop:pointcut expression="execution(* *..ZBZL*Service.save(..))" id="flowSavePoint"/>
   <aop:aspect  ref="flowSaveAspect" order="1">
   <aop:around method="aroundMethod" pointcut-ref="flowSavePoint"/>
  </aop:aspect>
 </aop:config>

 <!-- 自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面 -->
    <aop:aspectj-autoproxy />


* *..ZBZL*Service.save(..)


第一个 * 表示返回值是任意 后面以空格隔开 ,第二个* 表示任意 包名 ,但是只是 一级的任意包名,后面的两个点,表示是可以任意的包及子包 (这里只有一个点的话,只能在某一层包的下面找了。)  save 是方法名 括号 里的两个点表示 任意参数

execution 里面可以是 接口 ,也可以是具体的类。测试是都可以的,估计自动解析吧。


第一次测试不行,后面发现是扫描包的配置没有包含到需要 aop的那些类


参考:http://xtu-xiaoxin.iteye.com/blog/630206
http://chinaxxren.iteye.com/blog/981541

0 0