天天看点

走进事务-事务与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 的事务的注解配置就介绍完了。

继续阅读