上一篇文章中介绍了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 的事务的注解配置就介绍完了。