天天看點

Spring事務管理之——開啟事務

作者:我就是超能

事務是為保證資料的一緻性,操作的原子性,開發語言所提供的一種能力。

事務的作用:保障一系列對資料的操作,要麼同時成功,要麼同時失敗。

舉個栗子:李四借張三1萬元,張三賬戶轉了1萬給李四,張三的賬戶上1萬扣款成功,這時網絡中斷,李四賬戶寫入失敗。如果沒有事務管理,張三的賬戶上就少了1萬,但是李四沒有收到,張三的1萬可能就打水漂了,銀行就開心了[呲牙]。(實際銀行轉賬業務遠比這個要複雜)。是以事務的管理就非常重要。

Spring中如何啟用事務呢?

  • 首先,在JDBC配置檔案中,定義事務管理器Bean。
Spring事務管理之——開啟事務
//設定事務管理器,作為bean
    @Bean
    public PlatformTransactionManager transactionManager(DataSource dataSource){
        DataSourceTransactionManager dsTransactionManager = new DataSourceTransactionManager();
        dsTransactionManager.setDataSource(dataSource);
        return dsTransactionManager;           
  • 其次,在Spring配置中,告訴Spring通過注解 @EnableTransactionManagement 開啟事務。
Spring事務管理之——開啟事務
  • 最後,在需要使用事務的接口層方法上,通過增加注解 @Transactional 來開啟事務。
Spring事務管理之——開啟事務

注意:

  1. Spring注解式事務一般添加到業務接口層方法上,而不直接增加到業務層實作類。
  2. 可以對接口層的具體方法開啟事務,也可以直接在接口上增加注解,表示整個接口類的所有方法都開啟事務。