Spring中的事务管理如何配置
这篇文章主要介绍了spring中的事务管理如何配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在springboot中,使用事务非常的简单,因为springboot已经帮我们配置好了,只需要加上注解@Transactional即可
在spring中我们需要做一些配置:主要有三点:
- @Transactional:在相应的方法上加上这个注解
- @EnableTransactionManagement:在配置类中加上,开启事务管理
- 需要在配置类中加入PlatformTransactionManager
PlatformTransactionManager接口定义了两个方法commit和rollback
publicinterfacePlatformTransactionManager{ TransactionStatusgetTransaction(TransactionDefinitionvar1)throwsTransactionException; voidcommit(TransactionStatusvar1)throwsTransactionException; voidrollback(TransactionStatusvar1)throwsTransactionException; }
首先创建一个配置类:MainTxConfig
@EnableTransactionManagement//开启事务管理 @ComponentScan("com.springTx")//扫描组件,这里扫描UserDao和UserService @Configuration publicclassMainTxConfig{ /** *配置数据源 *@return *@throwsException */ @Bean publicDataSourcedataSorce()throwsException{ ComboPooledDataSourcecomboPooledDataSource=newComboPooledDataSource(); comboPooledDataSource.setUser("root"); comboPooledDataSource.setPassword("123456"); comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver"); comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/study"); returncomboPooledDataSource; } /** *jdbc模板操作数据库,这里需要获取到数据源,dataSorce()是从容器中获取已有的组件,而不是重新又创建一个数据源 *@return *@throwsException */ @Bean publicJdbcTemplatejdbcTemplate()throwsException{ returnnewJdbcTemplate(dataSorce()); } @Bean publicPlatformTransactionManagerplatformTransactionManager()throwsException{ returnnewDataSourceTransactionManager(dataSorce()); } }
UserService
@Service publicclassUserService{ @Autowired privateUserDaouserDao; @Transactional publicvoidinsertUser(){ userDao.insert(); intn=1/0; System.out.println("插入成功"); } }
UserDao:
@Repository publicclassUserDao{ @Autowired privateJdbcTemplatejdbcTemplate; publicvoidinsert(){ Stringsql="insertintouser(name,age)value(?,?)"; Stringname=UUID.randomUUID().toString().substring(1,7); jdbcTemplate.update(sql,name,20); } }
测试:
publicclassTxtest{ @Test publicvoidtest(){ //创建容器 AnnotationConfigApplicationContextapplicationContext=newAnnotationConfigApplicationContext(MainTxConfig.class); UserServiceuserService=applicationContext.getBean(UserService.class); userService.insertUser(); applicationContext.close(); } }
当出现异常时,事务会进行回滚操作。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。