上一篇文章中介紹了Spring事務的xml配置方法,這一篇介紹Spring事務的注解配置方法。
首先給出Spirng事務的注解隻有兩個
- @EnableTransactionManager
- @Transactional
解釋一下兩個注解的作用
第一個:表示啟用Spring的事務管理器,那麼首先你得給Spring容器注冊事務管理器。然後,他會自己去Ioc容器中取PlatformTransactionManager接口的事務管理器。
第二個:這個注解表示1:對誰做事務增強(貼在誰身上就是對誰做事務增強);2做具體什麼樣的增強(注解的屬性就表示具體做怎麼樣的增強,而且一般的,我們隻需要使用預設屬性即可)
執行個體:
1:注冊Spring的事務管理器(不太好執行個體,酌情觀看)
@Configuration
@PropertySource("classpath:com/tutorialspoint/codewolf/tx/demo03/resource/db.properties")
public class DataSourceConfig {
private String driverClassName = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/test2";
private String username = "root";
private String password = "yuchangyuan";
private int initialSize = 5;
// 建立連接配接池的Bean
@Bean
public DataSource dataSource() {
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driverClassName);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
// ds.setInitialSize(initialSize);
return ds;
}
@Bean
public DataSourceTransactionManager dataSourceTransactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
2:啟用事務管理器
@Configuration // 辨別目前類為一個配置類
@ComponentScan("com.tutorialspoint.codewolf.tx.demo03") // IoC注解解析器
@Import(value = {DataSourceConfig.class,TransactionManagerConfig.class})
//或許這個注解,就是去sprint容器中找實作了PlatformTransactionManager接口吧.
@EnableTransactionManagement
public class AppConfig {
}
3:貼在具體方法上,啟用事務
記住使用事務注解,隻有兩個注解即可。
我這裡使用的是完全的java代碼來配置事務管理器的,沒有使用xml來配置。
好了,謝謝大家,Spring 的事務的注解配置就介紹完了。