完全注解管理事务

1:对照bean1.xml

将其中配置文件中的配置转化为配置类
image.png

2:TxConfig配置类

  1. package com.junjay.spring5.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  7. import org.springframework.transaction.annotation.EnableTransactionManagement;
  8. import com.alibaba.druid.pool.DruidDataSource;
  9. @Configuration
  10. // 开启组件扫描
  11. @ComponentScan(basePackages = "com.junjay.spring5")
  12. //开启事务
  13. @EnableTransactionManagement
  14. public class TxConfig {
  15. // 创建数据库连接池
  16. @Bean
  17. public DruidDataSource getDruidDataSource() {
  18. DruidDataSource dataSource = new DruidDataSource();
  19. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  20. dataSource.setUrl("jdbc:mysql://localhost:3306/test");
  21. dataSource.setUsername("root");
  22. dataSource.setPassword("root");
  23. return dataSource;
  24. }
  25. // 创建JdbcTemplate对象
  26. @Bean
  27. public JdbcTemplate getJdbcTemplate(DruidDataSource dataSource) {
  28. JdbcTemplate jdbcTemplate = new JdbcTemplate();
  29. // 注入dataSource,到ioc容器中找到DruidDataSource该类型进行注入
  30. jdbcTemplate.setDataSource(dataSource);
  31. return jdbcTemplate;
  32. }
  33. // 创建DataSourceTransactionManager事务管理器
  34. @Bean
  35. public DataSourceTransactionManager getDataSourceTransactionManager(DruidDataSource dataSource) {
  36. DataSourceTransactionManager manager = new DataSourceTransactionManager();
  37. manager.setDataSource(dataSource);
  38. return manager;
  39. }
  40. }

3:测试

image.png
GitHub:https://github.com/My-Jun/spring5_demo5