事务操作(完全注解声明式事务管理):
我这里用的类基本上和我用xml当配置文件的时候一样,所以直接看这篇,只有一个配置文件类和测试类需要改而已,我这里只写改动部分,传送门:
Spring事务管理—声明式事务管理的使用
这是配置文件类:
package cn.zsp.spring5.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@ComponentScan(basePackages = "cn.zsp")
@EnableTransactionManagement
public class TxConfig {
// 设置德鲁伊连接池
@Bean
public DruidDataSource getDruidDataSource(){
DruidDataSource dataSource =new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///user_db");
dataSource.setUsername("root");
dataSource.setPassword("123456");
return dataSource;
}
//设置JdbcTemplate
@Bean
public JdbcTemplate getJdbcTemplate(DruidDataSource dataSource){
JdbcTemplate jdbcTemplate =new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
//设置事务管理
@Bean
public DataSourceTransactionManager getDataSourceTransactionManager(DruidDataSource dataSource){
DataSourceTransactionManager dataSourceTransactionManager= new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
}
这是测试类:
@Test
public void test2(){
ApplicationContext context = new AnnotationConfigApplicationContext(TxConfig.class);
UserService userService = context.getBean("userService", UserService.class);
userService.zhuanzhang("1","2",100);
}