Spring事务管理—aop:pointcut expression解析
来源:互联网 发布:80后和90后的区别 知乎 编辑:程序博客网 时间:2024/04/30 23:38
Spring事务管理—aop:pointcut expression解析
先来看看这个spring的配置文件的配置:
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 配置事务拦截器拦截哪些类的哪些方法,一般设置成拦截Service -->
<aop:config>
<aop:pointcut expression="execution(* com.xy.service.*.*(..))"
id="allDaoMethod" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="allDaoMethod" />
</aop:config>
表示com.xy.service包下的所有方法为为事务管理。
execution(* com.aptech.jb.epet.dao.hibimpl.*.*(..))
这样写应该就可以了 这是com.aptech.jb.epet.dao.hibimpl 包下所有的类的所有方法。。
第一个*代表所有的返回值类型
第二个*代表所有的类
第三个*代表类所有方法 最后一个..代表所有的参数。
下面给出一些常见切入点表达式的例子:
任意公共方法的执行:
execution(public * *(..))
任何一个以“set”开始的方法的执行:
execution(* set*(..))
AccountService
接口的任意方法的执行:execution(* com.xyz.service.AccountService.*(..))
定义在service包里的任意方法的执行:
execution(* com.xyz.service.*.*(..))
定义在service包或者子包里的任意类的任意方法的执行:
execution(* com.xyz.service..*.*(..))
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<aop:config>
<aop:pointcut id="bussinessService"
expression="execution(* com.gao.service..*.*(..))" />
<aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="load*" propagation="REQUIRED" />
<tx:method name="get*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="export*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析
- Spring事务管理—aop:pointcut expression解析(转)
- 最全面的 Spring事务管理和AOP切面日志的注入 —aop:pointcut expression解析
- Spring事务管理—aop:pointcut 属性expression格式说明
- Spring AOP中pointcut expression表达式解析
- jQuery实现遮罩弹出对话框(仿天猫的删除对话框)
- jQuery和zTree实现的下拉树
- 周鸿祎:互联网思维不是“万能药”
- hosts.equiv和.rhosts文件——远程登录rlogin网络配置解析
- stm32时钟分析
- Spring事务管理—aop:pointcut expression解析
- self.location.href的具体用法
- lapack库产生的问题error LNK2001: unresolved external symbol _dgesvd_
- :该如何正确的使用position属性 它的作用是什么?
- uva 12050 - Palindrome Numbers(数论)
- Starteam中使用View Label来自定义版本内容
- BZOJ1296: [SCOI2009]粉刷匠 DP
- boost准模板库date类使用(直接引入方式)
- SYBASE ASE 内存相关学习总结