Spring声明式事务基于xml/注解/纯注解的配置

Spring事务核心:声明式事务&注解式事务 在Spring中,事务管理是一个非常重要的特性,它可以帮助开发者在应用程序中实现事务控制。Spring提供了两种事务管理方式:声明式事务和注解事务。 阅读详情

xml配置声明式事务:
配置事物管理器 DataSourceTransactionManager 注入DataSource
配置事物的通知(增强的类是谁):
<tx:advice id=“通知的标识” transaction-manager=“通知是谁”>
配置aop ,建立切入点表达式(哪些方法增强)和事物通知的关系
aop:config中aop:pointcut && aop:advisor
配置事物的属性:tx:advice中tx:attributes

<!--声明式事物配置步骤-->
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置事务的通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <!--配置事务的属性-->
    <tx:attributes>
        <tx:method name="*" propagation="REQUIRED" read-only="false"/>
        <tx:method name="find*" propagation="SUPPORTS" read-only="true"></tx:method>
    </tx:attributes>
</tx:advice>
<!--配置aop  建立切入点表达式与事物通知之间的关系-->
<aop:config>
    <!--切入点表达式-->
    <aop:pointcut id="pt1" expression="execution(* com.itliuyu.service.impl.*.*(..))"></aop:pointcut>
    <!--建立切入点表达式和通知的关系-->
    <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
</aop:config>

注解配置声明式事务:
步骤
配置事物管理器 DataSourceTransactionManager 注入DataSource
开启spring对注解配置事务的支持tx:annotation-driven
在需要事务控制的地方使用注解@Transactional(事务的属性)
@Transactional作用在接口上,实现类重写的方法都有事物的支持
@Transactional作用在类上,类中的方法都有事务支持
@Transactional作用在方法上,该方法具有事务支持
作用级别:就近原则

<!--声明式事物注解配置-->
    <!--配置事物管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!--开启spring对注解配置事物的支持-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
    <!--在需要事物控制的地方使用@Transactional-->

@Transactional(propagation = Propagation.REQUIRED,readOnly = false)
public class AccountServiceImpl implements IAccountService{

纯注解实现:创建配置类

主配置类

@Component
@ComponentScan("com.itliuyu") //创建容器扫描的包
@PropertySource("classpath:jdbc.properties")//指定配置文件位置
@Import({jdbcConfig.class,TransationConfig.class})  //关联配置类
@EnableTransactionManagement
public class SpringConfiguration {

}

jdbc配置类

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;
    @Bean("jdbcTemplate")
    public JdbcTemplate createJdbcTemplate(DataSource dataSource){
        return new JdbcTemplate(dataSource);
    }
    @Bean("dataSource")
    public DataSource createDataSource(){
        DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(username);
        ds.setPassword(password);
        return ds;
    }
}

事物管理器配置类:

public class TransationConfig {
    //**************************************************
    @Bean("transactionManager") //事务管理器进ioc容器  *****
    //**************************************************
    public PlatformTransactionManager createTransactionManager(DataSource dataSource){
        return new DataSourceTransactionManager(dataSource);
    }
}
Spring基础(十六):Spring事务管理注解方式和XML配置方式 保证一个事务修改的数据提交后才能被另外一个事务读取,另外一个事务不能读取该事务未提交的数据。这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。无论add是否有事务,都建立一个新的事务,所有的方法都加入到新的事务中,add原来的事务就不用了。如果add方法没有事务,那么就新建一个事务,将addDept和addEmp加入到这个新的事务中。 阅读详情

相关推荐

SSH整合,纯注解,包含事务,零配置

SSH整合,纯注解,包含事务,零配置,代码高度复用

Spring声明式事务管理(XML与注解方式)

事务控制概述编程式事务控制自己手动控制事务,就叫做编程式事务控制。 Jdbc代码: Conn.setAutoCommite(false); // 设置手动控制事务 Hibernate代码: Session.beginTransaction(); // 开启一个事务细粒度的事务控制: 可以对指定的方法、指定的方法的某几行添加事务控制。(比较灵活,但开发起来比较繁琐: 每次都要开启、提

吃果冻不吐果冻皮 5348

SRAM compiler选项中 Soft Error Repair (SER)

引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,

hzmscut的博客 1154

Spring——Spring中的事务、XML配置事务属性、注解+XML、纯注解的配置方式 (重重点)、Spring的自动装配原理

三、基于 xml 配置声明式事务 1、解决银行转账问题: 在上面引出事务的代码基础上,只需要修改xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2...

Guizy 9403

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1234

利用GPAC生成MP4文件

GPAC主要针对学生和内容创作者,代表了一个跨平台的多媒体框架,开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型,从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影。

深之JohnChen的专栏 1770

Spring中声明式事务xml配置 & 改造成纯注解

文章目录1. 本文概述2. 环境搭建2.1 导包2.2 准备数据库 / 相关类 / 接口 / 方法2.2.1 准备数据库2.2.2 准备相关类和接口2.2.3 实现类中的方法说明3. 配置Spring.xml文件3.1 用bean配置实例业务对象3.2 配置事务3.2.1 配置事务管理器3.2.2 配置AOP声明式事务3.2.2 配置事务的规则4. 功能测试 1. 本文概述 本文以A给B转账100...

零点笔记 791

人大金仓V8R3企业版License更新全攻略:从查看到重启一步到位

本文详细解析了人大金仓V8R3企业版License更新的完整运维流程,涵盖从诊断当前授权状态、获取与验证新文件、精准定位旧文件路径,到安全替换文件及服务重启验证的全过程。重点针对更新流程中常见的版本匹配、文件定位、权限与服务重启等关键环节提供了实战解决方案和避坑指南,帮助运维人员高效、平稳地完成授权续期。

redis7keeper的博客 895

Spring事务控制基于AOP 纯注解配置和XML配置

这里的xml可以和下面的SpringConfiguration类选择配置一个即可, 作用是创建容器要扫面的包,和开启spring注解aop的支持 <!-- Bean.xml--> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/bea...

多凡的博客 953

R语言pls包实战:手把手教你用偏最小二乘(PLS)搞定高维数据回归(附完整代码与数据标准化避坑指南)

本文详细介绍了如何使用R语言的pls包进行偏最小二乘(PLS)回归分析,特别针对高维数据回归问题。通过完整的代码示例和数据标准化避坑指南,帮助读者掌握从数据预处理到模型优化的全流程,解决实际应用中的常见问题。

weixin_42662605的博客 350

【GlobalMapper精品教程】006:Excel表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

原始的坐标数据如下图所示,其中坐标为Lat经度,LNG纬度,均为十进制度的形式,一般软件都支持十进制度的格式,如果不支持,你可以尝试使用度分秒的形式,图中的DDMMSS-LAT为纬度,DDMMSS-LNG为经度。打开globalmapper软件,点击【打开数据文件】,选择坐标数据文件(案例中的数据位配套实验数据包中的data006.rar)气象台站分布点坐标.xls。选择坐标系:本案例数据采用的是经纬度,因此选择Geographic(Latitude/Longitude),基准选择WGS84,点击确定。

智慧空间实验室 2569

Spring声明式事务管理(基于XML方式实现)

--------------------siwuxie095                      Spring 声明式事务管理(基于 XML 方式实现)       以转账为例       1、基于 XML 配置文件的方式实现声明式事务管理,其思想就是 AOP 思想             2、导入相关 jar 包(共 13 个包)

siwuxie095's blog 3757

【AI编程】Claude Code 最强AI 编程利器项目实战详解

Claude Code 最强AI 编程利器项目实战详解

congge 7397

Spring5 AOP + JdbcTemplate + 声明式事务

1 AOP 底层基于动态代理,分为 JDK (接口)、CGLIB (继承),XML / 注解两套开发模式;2 JdbcTemplate 简化原生 JD,搭配 Druid + 外部配置文件解耦;3 转账业务直观体现事务必要性,Spring 提供 XML / 注解 / 纯配置三种声明式事务;4 开发规范:查询方法加提升性能,修改、转账类业务添加事务注解。

m0_63611023的博客 230

Lasso的原理及其与其他特征选择方法的比较进行阐述,然后讨论Lasso优点、缺点以及应用场景,最后给出了代码实例

在机器学习领域中,特征选择(feature selection)是指在模型训练前对数据集进行分析,选择其中有助于预测目标变量或影响模型性能的特征,去除不相关或冗余的特征,提升模型的泛化能力。而Lasso回归是一种很流行的用于特征选择的方法之一。Lasso回归(又称LASSO,least absolute shrinkage and selection operator)是一种线性模型中的特征选择方法。

AI天才研究院 3051

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

qq_53317005的博客 5206

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring基于XML配置声明式事务

基于 XML 配置声明式事务适用于老项目或对注解支持有限的环境,但在现代开发中,更多项目倾向于使用注解(如)来实现声明式事务。等价的注解配置文件import com/*** 配置数据源} /*** 配置 SqlSessionFactory} /*** 配置事务管理器。

m0_62943934的博客 1598

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring的事务操作一站式学习【事务的概念、注解声明式事务管理、声明式事务管理参数配置、XML声明式事务管理、完全注解声明式事务管理】(超详细)

目录事务的概念搭建事务操作的环境创建数据库表,添加记录代码演示事务场景引入事务管理介绍注解声明式事务管理声明式事务管理参数配置propagation:事务传播行为ioslation:事务隔离级别timeout:超时时间readOnly:是否只读rollbackFor:回滚noRollbackFor:不回滚XML声明式事务管理(不常用)完全注解声明式事务管理 事务的概念 事务的概念(通俗理解):事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。 典型场景:银行转账(这两件

『愚』的博客 4455

spring声明式事务xml配置和注解配置

导入spring jar包本篇文章只是为了巩固之前学的知识,如果描述有误欢迎指出使用注解的方式来用声明式事务然后在要用到事务的类上面增加一个@Transactional注解就行了,使用注解的方式看似简单,其实如果service类比较多的话需要每个类上面都加这个注解,而使用xml配置文件的话,就只需要配置一次即可, 本篇文章只是为了巩固之前学的知识,如果描述有误欢迎指出 <!--aop包--...

yuge1123的博客 1万+

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

Spring事务配置可通过三种方式实现:纯XML配置、XML+注解混合、纯注解方式。在纯XML配置中,通过引入 spring-context、spring-jdbc、spring-tx 等依赖,并结合 <tx:advice> 和 <aop:advisor> 标签完成事务增强配置,常用于老项目中。XML+注解方式则在XML中配置事务管理器并开启注解支持,通过 @Transactional 注解在业务方法中灵活控制事务行为。纯注解方式则完全摆脱XML,利用 @EnableTransactionManagemen

谢谢你的喜欢 我们一起无限进步 778

声明式事务(注解与纯注解方式)

介绍了使用注解与纯注解的方式来实现声明式事务

凉茶铺的博客 2823

Spring 声明式事务

本文介绍了声明式事务与编程式事务的区别及实现方式。编程式事务需手动编写事务控制代码,灵活性高但维护性差;声明式事务通过注解或配置实现,将事务控制与业务逻辑分离。重点讲解了Spring声明式事务的实现:1. 配置事务管理器和相关依赖;2. 使用@Transactional注解及其属性设置,包括只读(readOnly)、超时(timeout)、异常处理(rollbackFor/noRollbackFor)、隔离级别(isolation)和传播行为(propagation)。其中传播行为解决了嵌套事务的问题,并提

weixin_55837048的博客 1748

声明式事务及基于注解的声明式事务

目录声明式事务基于注解的声明式事务1.准备项目1)导入依赖2)外部配置文件jdbc.properties3)spring配置文件4)准备dao/service层5)测试环境搭建2.基本事务控制1)选择对应的事务管理器实现加入到IOC容器2)使用注解@EnableTransactionManagement开启事务支持3)使用@transaction注解指定哪些方法添加事务4)测试3.事务属性1)只读2)超时时间3)事务异常4)事务隔离级别5)事务传播行为Spring核心掌握总结声明式事务是指使用注解或 XML

weixin_69134926的博客 1196

Spring事务机制---XML配置事务和注解方式事务

文章目录1. Spring事务管理机制1.1 Spring事务管理机制1.2 PlatformTransactionManager事务管理器1.3 TransactionDefinition事务定义信息1.3.1 常用事务隔离级别1.3.2 事务的传播行为PropagationBehavior1.3.1 事务的传播行为1.4 事务状态:TransactionStatus1.5 Spring中要达到事务操作的三个步骤1.6 Spring事务管理两种方式1.6.1 编程式事务管理1.6.2 通过XML或者注解配

公子&小白的博客 2249

Spring声明式事务XML方式以及注解式事务

对于转账环境请看前篇https://mp.youkuaiyun.com/postedit/87891375 新的xml: &lt;bean id="accountService" class="tx.AccountServiceImplement"&gt; &lt;property name="accountDao" ref="accountDao"/&gt; &lt;/

大哥的叔的博客 1万+

Spring——XML配置事务、注解+XML、纯注解的配置方式

目录 一、基于 xml 配置声明式事务 1、解决银行转账问题2、事务方法 tx:method 属性配置3、CRUD通用事务配置 二、基于 注解 配置声明式事务三、基于 纯注解(JavaConfig) 配置声明式事务四、选择开发方式 Spring系...

m0_37695902的博客 346
上一篇: 动态代理的使用与各个参数的意义
下一篇: HttpClient&阿里云通信接口
UTF-8LLLLLL
博客等级 码龄9年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值