spring aop 实践
2015-07-15 19:09
513 查看
<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
<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
相关文章推荐
- springmvc获取json Failed to load resource: the server responded with a status of 406 (Not Acceptable)
- String类(传智播客java基础毕老师的源码)
- [LeetCode][Java] Insert Interval
- 工作积累(十)——maven排除相关jar包依赖
- Java线程同步中关键字synchronized详述
- 使用javaDate类代数据仓库维度表
- 变量和运算符的使用、JAVA控制语句
- JAVA基础(2)——分支和循环结构
- java获取时间,本周,本月,本季度的起始。
- [LeetCode][Java] Merge Intervals
- bjJava初学2015-7-15
- Spring quartz 定时器报错
- 配置java环境变量
- 网易云课堂java进阶 时间显示
- 杭电ACM2026java做法
- spring 标签
- java IO的总结
- javaWeb——图片验证
- javaWeb——图片验证
- spring学习笔记