當前位置:首頁 » 數據倉庫 » 聲明式事務如何配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

聲明式事務如何配置

發布時間: 2023-06-08 18:51:59

1. SpringBoot如何註解事務聲明式事務

  1. springboot的事務也主要分為兩大類,

    一是xml聲明式事務,

    二是註解事務,註解事務也可以實現類似聲明式事務的方法,

  2. springboot 之 xml事務

    使用 @ImportResource("classpath:transaction.xml") 引入該xml的配置

  3. springboot 註解事務

  4. Transactional註解事務

    註:需要在進行事物管理的方法上添加註解@Transactional,或者偷懶的話直接在類上面添加該註解

  5. 註解聲明式事務

    @Configuration
    public class TxConfigBeanName {

    @Autowired
    private DataSourceTransactionManager transactionManager;

    // 創建事務通知

    @Bean(name = "txAdvice")
    public TransactionInterceptor getAdvisor() throws Exception {
    Properties properties = new Properties();
    properties.setProperty("get*", "PROPAGATION_REQUIRED,-Exception,readOnly");
    properties.setProperty("add*", "PROPAGATION_REQUIRED,-Exception,readOnly");
    properties.setProperty("save*", "PROPAGATION_REQUIRED,-Exception,readOnly");
    properties.setProperty("update*", "PROPAGATION_REQUIRED,-Exception,readOnly");
    properties.setProperty("delete*", "PROPAGATION_REQUIRED,-Exception,readOnly");
    TransactionInterceptor tsi = new TransactionInterceptor(transactionManager,properties);
    return tsi;
    }
    @Bean
    public BeanNameAutoProxyCreator txProxy() {
    BeanNameAutoProxyCreator creator = new BeanNameAutoProxyCreator();
    creator.setInterceptorNames("txAdvice");
    creator.setBeanNames("*Service", "*ServiceImpl");
    creator.setProxyTargetClass(true);
    return creator;
    }
    }

2. Spring的聲明式事務處理怎麼配置,可以在提交事務後關閉資料庫連接

try {
conn = u.getConnection();//連接資料庫

//業務層的處理方法的調用。。。。。。

u.commit(conn);//提交
} catch (Exception e) {
u.rollback(conn);

} finally {

u.close(conn);//關閉
}