Spring使用自带的DataSourceTransactionManager声明式事务(xml)模板
2023-06-13 09:16:06 时间
我这里用的是Druid连接池
applicationConttext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.itheima"/>
<!--引入外部properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 声明事务-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 将spring的DataSourceTransactionManager声明成切面类-->
<tx:advice id="interceptor" transaction-manager="transactionManager">
<tx:attributes>
<!-- name: 匹配的方法名
propagation: 传播行为
isolation: 隔离级别
read-only: 是否只查询数据
timeout: 超时时间
-->
<tx:method name="find*" isolation="DEFAULT" timeout="-1"/>
<tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" read-only="false" timeout="-1"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 配置切面 -->
<aop:config>
<aop:advisor advice-ref="interceptor" pointcut="execution(* com.csdn.service..*.*(..)))"/>
</aop:config>
</beans>
下面是我导入的依赖:
<build>
<plugins>
<!-- 设置编译版本为1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<!--依赖导入-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
</dependencies>
相关文章
- Spring学习笔记(三)——Spring注解开发&spring与Junit整合测试
- Spring MVC框架:第十章:拦截器
- Spring学习笔记(十八)——spring日志框架的配置和使用
- Spring学习笔记(二十)——springboot基于AdminLTE的后台管理系统模板
- Spring AOP 拦不下接口方法上的注解啊
- Spring Framework 源码学习笔记(二)
- 掌握这些 Spring Boot 启动扩展点,已经超过 90% 的人了!
- 服务容错的必要性与Spring Cloud Alibaba Sentinel 限流配置实战
- 【03】Spring源码-手写篇-手写AOP实现(上)
- Spring启动过程中创建bean过程中BeanDefinition的后置处理部分的代码分析
- spring官方文档 中文_Spring软件
- spring boot的基本配置——spring boot的web开发——Thymeleaf模板引擎———通过HttpSession session的session.setAttribute返回数据给
- 【spring-kafka】@KafkaListener详解与使用
- Spring的两大核心IOC和AOP
- Java框架Spring入门-第一个spring项目
- spring cloud系列教程第七篇-服务提供者集群环境搭建及负载均衡配置
- Spring Boot 解决跨域问题的 3 种方案
- Spring Boot的事务管理(一)
- Spring Cloud Config 高级功能(一)
- Spring Security 的核心组件AuthenticationManager
- Spring错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.B详解编程语言
- spring的AOP(四)—-Spring AOP 编程(Advisor)详解编程语言
- Spring Boot入门第一天:Hello, Spring Boot!详解编程语言
- Spring Cloud(十三):Spring Cloud Sleuth服务链路追踪(zipkin)详解编程语言
- Spring Boot2.0之热部署原理详解编程语言
- spring boot jar包 linux 部署详解编程语言
- Spring Boot(二十):使用spring-boot-admin对spring-boot服务进行监控详解编程语言
- Spring Boot(十三):spring boot小技巧详解编程语言
- Spring整合Redis简单实现高效缓存(spring集成redis)