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系列之事務的控制 註解實現+xml實現+事務的隔離等級SpringXML
- spring事物配置,宣告式事務管理和基於@Transactional註解的使用Spring
- 基於註解的Spring多資料來源配置和使用(非事務)Spring
- Spring Aop基於註解的實現Spring
- Spring事務的介紹,以及基於註解@Transactional的宣告式事務Spring
- 【Spring註解】事務註解@TransactionalSpring
- Spring基於註解的IoC配置Spring
- Spring基於註解的aop配置Spring
- spring,mybatis事務管理配置與@Transactional註解使用[轉]SpringMyBatis
- spring和ehcache整合,實現基於註解的快取實現Spring快取
- Spring Cloud Seata系列:基於AT模式實現分散式事務SpringCloud模式分散式
- 基於RocketMQ實現分散式事務MQ分散式
- 說說在 Spring 中,如何基於 XML 來配置事務SpringXML
- Spring Security 實戰乾貨:基於註解的介面角色訪問控制Spring
- Spring事務實現原理Spring
- 【Spring】事務實現原理Spring
- 關於事務回滾註解@Transactional
- Spring配置事務Spring
- Java Web之基於註解的Spring MVC環境配置JavaWebSpringMVC
- Spring非同步Async和事務Transactional註解Spring非同步
- 基於MyBatis註解擴充套件,實現無需配置即可使用MyBatis套件
- AOP實現事務控制的疑惑
- 基於註解的 Spring MVC詳解SpringMVC
- 基於Springboot+Dubbo+Nacos 註解方式實現微服務呼叫Spring Boot微服務
- Spring(5、基於註解的事物)Spring
- Spring Boot 基於註解驅動原始碼分析--自動配置Spring Boot原始碼
- 基於註解的Spring多資料來源配置和使用Spring
- spring上 -基於註解配置bean,動態代理,AOP筆記SpringBean筆記
- MySQL 中基於 XA 實現的分散式事務MySql分散式
- Laravel基於reset機制實現分散式事務Laravel分散式
- NOSQL儲存的基於事件的事務實現SQL事件
- Spring宣告式事務控制Spring
- Spring中的事務控制Spring
- 基於註解的 PHP 列舉類實現PHP
- 實戰與原理:如何基於RocketMQ實現分散式事務?MQ分散式
- 《四 spring原始碼》spring的事務註解@Transactional 原理分析Spring原始碼
- 基於Spring中的事務管理機制Spring
- 使用Spring Boot實現事務管理Spring Boot