Spring JdbcTemplate事务注解
配置类方式配置
在之前的操作中,相关的配置还是写在了 xml 配置文件中。现在,使用配置类的方式进行配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:context = "http://www.springframework.org/schema/context" xmlns:aop = "http://www.springframework.org/schema/aop" xmlns:tx = "http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> < context:component-scan base-package = "com.pingguo.spring5" ></ context:component-scan > <!--引入外部属性文件--> < context:property-placeholder location = "classpath:jdbc.properties" /> <!--配置连接池--> < bean id = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" > < property name = "driverClassName" value = "${prop.driverClass}" ></ property > < property name = "url" value = "${prop.url}" ></ property > < property name = "username" value = "${prop.username}" ></ property > < property name = "password" value = "${prop.password}" ></ property > </ bean > < bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate" > <!--注入datasource--> < property name = "dataSource" ref = "dataSource" ></ property > </ bean > < bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > <!--注入数据源--> < property name = "dataSource" ref = "dataSource" ></ property > </ bean > <!--开启事务注释--> < tx:annotation-driven transaction-manager = "transactionManager" ></ tx:annotation-driven > </ beans > |
完全注解方式
一、创建配置类
把 xml 里的配置在配置类里用注解方式实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package com.pingguo.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; import javax.sql.DataSource; @Configuration // 声明配置类 @ComponentScan (basePackages = "com.pingguo.spring5" ) // 开启注解扫描 @EnableTransactionManagement // 开启事务 public class TxConfig { // 创建数据库连接池 @Bean public DruidDataSource getDruidDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setDriverClassName( "com.mysql.jdbc.Driver" ); druidDataSource.setUrl( "jdbc:mysql://223.31.222.111:3306/shop" ); druidDataSource.setUsername( "root" ); druidDataSource.setPassword( "123456" ); return druidDataSource; } // 创建 JdbcTemplate 对象 @Bean public JdbcTemplate getJdbcTemplate(DataSource dataSource) { JdbcTemplate jdbcTemplate = new JdbcTemplate(); // 注入 dataSource jdbcTemplate.setDataSource(dataSource); return jdbcTemplate; } // 创建事务管理器的对象 @Bean public DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource) { DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(); transactionManager.setDataSource(dataSource); return transactionManager; } } |
二、测试注解方式的事务管理
修改下测试方法,使用 AnnotationConfigApplicationContext 来读取配置类。
1
2
3
4
5
6
7
8
9
|
public class TestTrans { @Test public void testJdbc() { ApplicationContext context = new AnnotationConfigApplicationContext(TxConfig. class ); UserService userService = context.getBean( "userService" , UserService. class ); userService.accountMoney(); } } |
执行一下:
1
2
3
|
八月 08, 2021 8:49:35 上午 com.alibaba.druid.pool.DruidDataSource info 信息: {dataSource-1} inited Process finished with exit code 0 |
查看数据表数据的修改情况。
成功。
以上就是Spring框架JdbcTemplate数据库事务管理完全注解方式的详细内容,更多关于Spring JdbcTemplate事务注解的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/wessonlan/article/details/124812977