這篇文章給大家介紹Spring中怎么配置事務(wù)管理,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),秀嶼網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:秀嶼等地區(qū)。秀嶼做網(wǎng)站價(jià)格咨詢:13518219792
在springboot中,使用事務(wù)非常的簡單,因?yàn)閟pringboot已經(jīng)幫我們配置好了,只需要加上注解@Transactional即可
在spring中我們需要做一些配置:主要有三點(diǎn):
@Transactional:在相應(yīng)的方法上加上這個注解 @EnableTransactionManagement:在配置類中加上,開啟事務(wù)管理 需要在配置類中加入PlatformTransactionManager
PlatformTransactionManager接口定義了兩個方法commit和rollback
public interface PlatformTransactionManager { TransactionStatus getTransaction(TransactionDefinition var1) throws TransactionException; void commit(TransactionStatus var1) throws TransactionException; void rollback(TransactionStatus var1) throws TransactionException;}
首先創(chuàng)建一個配置類:MainTxConfig
@EnableTransactionManagement //開啟事務(wù)管理@ComponentScan("com.springTx") //掃描組件,這里掃描UserDao和UserService@Configurationpublic class MainTxConfig { /** * 配置數(shù)據(jù)源 * @return * @throws Exception */ @Bean public DataSource dataSorce() throws Exception { ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); comboPooledDataSource.setUser("root"); comboPooledDataSource.setPassword("123456"); comboPooledDataSource.setDriverClass("com.MySQL.jdbc.Driver"); comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/study"); return comboPooledDataSource; } /** * jdbc模板操作數(shù)據(jù)庫,這里需要獲取到數(shù)據(jù)源,dataSorce()是從容器中獲取已有的組件,而不是重新又創(chuàng)建一個數(shù)據(jù)源 * @return * @throws Exception */ @Bean public JdbcTemplate jdbcTemplate() throws Exception { return new JdbcTemplate(dataSorce()); } @Bean public PlatformTransactionManager platformTransactionManager() throws Exception { return new DataSourceTransactionManager(dataSorce()); }}
UserService
@Servicepublic class UserService { @Autowired private UserDao userDao; @Transactional public void insertUser(){ userDao.insert(); int n = 1/0; System.out.println("插入成功"); }}
UserDao:
@Repositorypublic class UserDao { @Autowired private JdbcTemplate jdbcTemplate; public void insert(){ String sql = "insert into user (name,age) value(?,?)"; String name = UUID.randomUUID().toString().substring(1,7); jdbcTemplate.update(sql,name, 20); }}
測試:
public class Txtest { @Test public void test(){ //創(chuàng)建容器 AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainTxConfig.class); UserService userService = applicationContext.getBean(UserService.class); userService.insertUser(); applicationContext.close(); }}
當(dāng)出現(xiàn)異常時(shí),事務(wù)會進(jìn)行回滾操作。
關(guān)于Spring中怎么配置事務(wù)管理就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享文章:Spring中怎么配置事務(wù)管理
本文路徑:http://jinyejixie.com/article32/jpdisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、服務(wù)器托管、用戶體驗(yàn)、營銷型網(wǎng)站建設(shè)、電子商務(wù)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)