spring基於註解配置實現事務控制
這篇文章主要介紹了使用spring基於註解配置實現事務控制,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
1、匯入相關依賴
這個專案當中使用了spring的JdbcTemplate模板類來用在控制層簡化jdbc程式碼,如果你所用的專案運用的別的持久層框架,進行切換即可。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
</dependencies>
2、建立spring配置類
package config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* spring的配置類,相當於bean.xml
*/
@Configuration //宣告是配置類
@ComponentScan("com.gzl") //開啟spring註解掃描
@Import({JdbcConfig.class,TransactionConfig.class}) //載入JdbcConfig和TransactionConfig類
@PropertySource("jdbcConfig.properties") //載入.properties 檔案中的配置
@EnableTransactionManagement //開啟事務註解
public class SpringConfiguration {
}
3、建立JdbcConfig資料來源配置類
package config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
/**
* 和連線資料庫相關的配置類
*/
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
/**
* 建立JdbcTemplate
* @param dataSource
* @return
*/
@Bean(name="jdbcTemplate")
public JdbcTemplate createJdbcTemplate(DataSource dataSource){
return new JdbcTemplate(dataSource);
}
/**
* 建立資料來源物件
* @return
*/
@Bean(name="dataSource")
public DataSource createDataSource(){
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
return ds;
}
}
4、建立TransactionConfig事務配置類
package config;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
/**
* 和事務相關的配置類
*/
public class TransactionConfig {
/**
* 用於建立事務管理器物件
* @param dataSource
* @return
*/
@Bean(name="transactionManager")
public PlatformTransactionManager createTransactionManager(DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
}
5、建立jdbcConfig.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy
jdbc.username=root
jdbc.password=1234
6、使用事務註解
在需要新增事務的方法上新增@Transactional
相關文章
- spring事物配置,宣告式事務管理和基於@Transactional註解的使用Spring
- Spring系列之事務的控制 註解實現+xml實現+事務的隔離等級SpringXML
- Spring Aop基於註解的實現Spring
- Spring事務的介紹,以及基於註解@Transactional的宣告式事務Spring
- Spring基於註解的aop配置Spring
- Spring基於註解的IoC配置Spring
- Spring基於註解實現 AOP 切面功能Spring
- 【Spring註解】事務註解@TransactionalSpring
- Spring Cloud Seata系列:基於AT模式實現分散式事務SpringCloud模式分散式
- Spring Security 實戰乾貨:基於註解的介面角色訪問控制Spring
- 說說在 Spring 中,如何基於 XML 來配置事務SpringXML
- 基於RocketMQ實現分散式事務MQ分散式
- 【Spring】事務實現原理Spring
- Spring事務實現原理Spring
- 基於Springboot+Dubbo+Nacos 註解方式實現微服務呼叫Spring Boot微服務
- Spring非同步Async和事務Transactional註解Spring非同步
- spring上 -基於註解配置bean,動態代理,AOP筆記SpringBean筆記
- Spring Boot 基於註解驅動原始碼分析--自動配置Spring Boot原始碼
- 關於事務回滾註解@Transactional
- Spring宣告式事務控制Spring
- SpringBoot基於註解方式配置FilterSpring BootFilter
- 《四 spring原始碼》spring的事務註解@Transactional 原理分析Spring原始碼
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- Spring Boot系列十八 Spring AOP + 註解實現統一註解Spring Boot
- Spring(使用註解配置)Spring
- 基於註解的 PHP 列舉類實現PHP
- 使用Spring Boot實現事務管理Spring Boot
- Spring基於註解的環繞通知實現請求方法日誌記錄Spring
- Spring RSocket:基於服務註冊發現的 RSocket 負載均衡Spring負載
- Laravel基於reset機制實現分散式事務Laravel分散式
- MySQL 中基於 XA 實現的分散式事務MySql分散式
- Spring7——開發基於註解形式的springSpring
- Spring Boot之使用Scheduled註解實現定時任務Springboot
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- Spring中基於註解方式的AOP操作Spring
- 實戰與原理:如何基於RocketMQ實現分散式事務?MQ分散式
- Spring事務專題(五)聊聊Spring事務到底是如何實現的Spring
- Spring AOP及事務配置三種模式詳解Spring模式