在spring中经常用TransactionProxyFactoryBean完成声明式事务管理
使用TransactionProxyFactoryBean 需要注入它所依赖的事务管理器,设置代理的目标对象,代理对象的生成方式和事务属性.代理对象时再目标对象上生成的包含事务和AOP切面的新对象,它可以赋给目标的引用来替代目标对象,以支持事务或AOP提供的切面功能
利用TransactionPrxyFactory来实现spring声明式事务管理
首先,在配置文件中定义数据源和事务管理器.
<!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/hibernate"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <!-- 定义事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 声明式的事务 --> <bean id="transaction" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"></property> <property name="target"> <bean id="addDao" class="transaction.AddDao"> <property name="dataSource" ref="dataSource"></property> </bean> </property> <property name="proxyTargetClass" value="true"></property> <property name="transactionAttributes"> <props> <prop key="add*">PROPAGATION_REQUIRED</prop> </props> </property> </bean>
编写操作数据库的AddDao类,同时编写addUser()函数,在该函数中一次性实现两次数据的插入操作
public class AddDao extends JdbcDaoSupport { public void addUser(User user){ String sql="insert into mw_person(name,age)values('"+user.getUsername()+"',"+23+")"; getJdbcTemplate().execute(sql); getJdbcTemplate().execute(sql); } }
测试类:
public class Test { public static void main(String[] args) { Resource resource=new ClassPathResource("transaction/beam.xml"); BeanFactory factory=new XmlBeanFactory(resource); AddDao addDao=(AddDao)factory.getBean("transaction"); User user=new User(); user.setUsername("abc"); user.setAge(34); addDao.addUser(user); } }
相关推荐
示例代码 博文链接:https://awaken2012.iteye.com/blog/1728283
spring声明式事务管理异常处理的测试
1.掌握Myeclipse的使用。 2.掌握spring框架和hibernate框架的使用。 3. 掌握整合spring和hibernate的持久化操作编程 4.掌握基于AOP的声明式事务编程...3.配置WEB-INF/applicationContext.xml提供基于AOP的声明式事务
spring声明式事务管理+jdbc+连接池 包内为代码,下载可直接执行。 一直用s2sh,感觉hibernate不好用,所以写了一个spring声明式事务管理+jdbc+连接池。
Java高级编程 实验报告 spring 声明事务 实验目的 掌握spring 声明式事务管理配置 实验环境 本实验采用本实验采用的eclipse或者 Myeclpse开发工具。Spring 4.0以上 Jdk1.7以上、oracle/mysql。
spring声明式事务管理_入门
spring声明式事务管理+jdbc+连接池.zip
Spring声明式事务配置管理方法
Spring的声明式事务管理是采用AOP(Aspect-Oriented Programming,面向切面编程)实现的。在编程式事务管理中,各事务处理代码实际上是相似的,这就造成了代码重复;而且编程式事务管理会造成事务管理代码和被管理的...
使用@Transactional注解时,可以通过参数配置事务详情: 5.2.2 基于Annotation方式的声明式事务 * * * * * * * * 声明式事务管理 如何实现Spring的声明式事务管理? 5.2 声明式事务管理 Spring的声明式事务管理可以...
Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握。本教程从基础知识开始,详细分析了 Spring 事务管理的使用方法,为读者理清思路。
struts2+spring+hibernate ssh 整合+spring声明式事务管理
本代码使用H2内存数据库演示spring事务使用,包括编程式事务,声明式事务@Transactional使用,自定义事务事务注解实现自定义事务管理器
主要为大家详细介绍了spring声明式事务管理,对spring事务管理进行深入了解,感兴趣的小伙伴们可以参考一下
spring3,hibernate4 配置声明式事务管理(annotation方式)
Spring框架的声明式事务管理是Java开发中的核心特性,它为高效且可靠的数据操作提供了强大支持。Spring通过@Transactional注解以及底层的AOP和代理机制实现了声明式事务。这个机制允许开发者通过简单的注解就能控制...
全面分析_Spring_的编程式事务管理及声明式事务管理.
NULL 博文链接:https://konglx.iteye.com/blog/1836826