使用aspectj声明事务
来源:互联网 发布:java 面试宝典2017 编辑:程序博客网 时间:2024/06/05 11:09
下面我们来看看aspectj 声明事务
前面两种声明式事务配置方式奠定了 Spring 声明式事务管理的基石。在此基础上,Spring 2.x 引入了 命名空间,结合使用 命名空间,带给开发人员配置声明式事务的全新体验,配置变得更加简单和灵活。另外,得益于 命名空间的切点表达式支持,声明式事务也变得更加强大。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd"> <!-- 引入外部的属性文件 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置c3p0连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 配置业务层类 --> <bean id="accountService" class="com.zs.spring.demo3.AccountServiceImpl"> <property name="accountDao" ref="accountDao" /> </bean> <!-- 配置DAO类(简化,会自动配置JdbcTemplate) --> <bean id="accountDao" class="com.zs.spring.demo3.AccountDaoImpl"> <property name="dataSource" ref="dataSource" /> </bean> <!-- =================3.使用XML配置声明式的事务管理,基于tx/aop============= --> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置事务的通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- propagation :事务传播行为 isolation :事务的隔离级别 read-only :只读 rollback-for:发生哪些异常回滚 no-rollback-for :发生哪些异常不回滚 timeout :过期信息 --> <tx:method name="transfer" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 配置切面 --> <aop:config> <!-- 配置切入点 --> <aop:pointcut expression="execution(* com.zs.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config></beans>
由于使用了切点表达式,我们就不需要针对每一个业务类创建一个代理对象了。另外,如果配置的事务管理器 Bean 的名字取值为“transactionManager”,则我们可以省略 的 transaction-manager 属性,因为该属性的默认值即为“transactionManager”。
0 0
- 使用aspectj声明事务
- 解决spring中使用声明事务java.lang.NoClassDefFoundError: org/aspectj/util/PartialOrder$PartialComparable.
- 使用AspectJ的AOP配置管理事务配置
- Spring AOP使用整理:使用@AspectJ风格的切面声明
- Spring AOP使用整理:使用@AspectJ风格的切面声明
- Spring 声明式事务使用
- Hibernate使用声明式事务
- 在spring中使用声明型事务
- 在spring中使用声明型事务
- Spring声明式事务之MathAlwaysTransactionAtttirbuteSource使用
- Spring声明式事务之NameMatchAtttirbuteSource使用
- 在spring中使用声明型事务
- 在spring中使用声明型事务
- Spring声明式事务之NameMatchAtttirbuteSource使用
- Spring使用TransactionProxyFactoryBean声明式事务配置
- 在spring中使用声明型事务
- 使用注解配置声明式事务
- Spring使用TransactionProxyFactoryBean声明式事务配置
- 在Windows下编译Caffe的Python接口
- 滤波器设计注意事项:
- 文件上传组件用到iframe在IE8,9中报拒绝访问的错误
- Flume之监控文件内容变化
- 字符串的最长回文子序列以及最长子串
- 使用aspectj声明事务
- 剑指offer-平衡二叉树
- 搭建百度地图SDK的Android开发环境(百度地图SDK版本V4.3.0)
- 支付宝支付
- IE,谷歌访问跨域问题
- Django+nginx+gunicorn部署流程(一)
- docker下使用disconf:细说demo开发
- python extend和append总结
- 51单片机之中断的实现过程