天天看點

走進事務-事務與Spring AOP的配置-之注解配置

上一篇文章中介紹了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:貼在具體方法上,啟用事務

走進事務-事務與Spring AOP的配置-之注解配置

記住使用事務注解,隻有兩個注解即可。

我這裡使用的是完全的java代碼來配置事務管理器的,沒有使用xml來配置。

好了,謝謝大家,Spring 的事務的注解配置就介紹完了。

繼續閱讀