Spring之事务配置

Spring 事务管理,使用Java 类配置 这个例子是针对 JdbcTeampelate的,Mybatis和纯jdbc也能用,关键点就是定义TransactionManger的地方不一样。备注:Spring事务的底层实现是基于AOP的,如果要更好的了解事务,可以先学习Spring AOP。使用@Transactional标记要添加事务的方法,这里没有写Dao, 我假设你自己写了Dao层类。关键是@SpringJunitConfig把事务的配置类的配置信息载入系统。 阅读详情
  • 基于注解@Transactional的事物配置
<?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:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd">

    <context:component-scan base-package="com.service" />
    <!--加载数据库配置文件-->
    <context:property-placeholder location="classpath:oracle.properties"/>
    <!--配置数据源 c3p0l连接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxIdleTime" value="30"/>
        <property name="preferredTestQuery" value="select 1"/>
        <property name="idleConnectionTestPeriod" value="30"/>
        <property name="testConnectionOnCheckout" value="false"/>
    </bean>

    <!--配置SqlSessionFactory-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--加载mybatis配置文件-->
        <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描映射文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--基于注解的事务-->
    <tx:annotation-driven transaction-manager="transactionManager" />
</beans>
  • 具体实例
    finally 里边不能放return!
    finally 里边不能放return!
    finally 里边不能放return!
    这会导致异常被生吃!调用者捕捉不到异常!事务不会起作用!
 public Msg deleteByPrimaryKey(Integer id){
        Msg msg = new Msg();
        try {
            chdMapper.deleteByPrimaryKey(id);
            int re = 100 / 0;
            msg.setCode(100).setContext("删除成功!");
        } catch (Exception e) {
            throw new RuntimeException("删除失败!" + e.getMessage());
        }finally {

        }
        return msg;

    }
Spring基于XML方式配置事务 配置步骤 一、配置事务管理器 在Bean配置文件中配置事务管理器。 需要注入数据源。 举个例子: &amp;lt;!-- 配置事务管理器 --&amp;gt; &amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework.jdbc.datasource.DataSourceTransactionManager&quot;&amp;gt; 阅读详情

相关推荐

spring 事务管理配置

一般的,我们把事务配在service层,利用service的业务逻辑接口统一的管理。 为什么不用在dao层呢? 因为一个service有可能调用多个dao,而这多个dao有可能相互联系,有时候一个操作需要调用多次数据库,但是这多次调用要么全提交,要么全回滚。  因此,在dao层调用事务理论上说不是一个很明智的选择。应该有业务逻辑层service层负责事务,统一处理。  Spring

不积跬步无以至千里,不积小流无以成江海 1404

Spring事务管理(详解+实例)

写这篇博客之前我首先读了《Spring in action》,之后在网上看了很多关于Spring事务管理的文章,具体参考文章如下: 1、将相应的接口依赖图理清出 2、将每个类的具体配置弄明白 3、将具体的配置给出来 4、给出具体的例子(一个声明式的一个编程式的)

Trigl的博客 9万+

Spring 事务相关配置

但是对于编译器异常,Spring事务是不进行回滚的,所以需要使用rollbackFor来设置要回滚的异常。例如methodA方法调用methodB方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。但是对于编译器异常(例如IOException),Spring事务是不进行回滚的。虽然学会了使用Spring回滚事务,但是有一种异常Spring事务默认是不进行回滚的那就是编译器异常。......

流楚丶格念的博客 2912

Java spring事务相关配置

Java spring事务相关配置

shangxianjiao的博客 237

Spring事物配置的五种模式

Spring 配置文件中关于事务配置的五种常用方法,不多说,你懂的

UE4-(蓝图)第五十五课图片九宫格拉伸的使用

一、为什么使用九宫格拉伸 在UI布局的时候,有时候使用的图片与我们要制作的UI大小有差距,如果图片是普通方式直接拉伸很可能造成图片四个角上的效果与原图片差距太大甚至是变形,这时候使用九宫格模式拉伸,可以保持图片四个角上的样式不发生改变,只对中间区域拉伸。 原始 正常拉伸: 九宫格拉伸: 二、图片参数设置 1.新建一个UI 控件蓝图,在CanvasPanel下拖入一个Image,选择一张...

Stone的博客 7889

Spring使用JavaConfig配置声明式事务管理

pom.xml: project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs

谁与争锋的专栏 4894

Pixel 6 Pro升级Android 13变砖急救指南:Fastboot全分区修复实战

本文提供Pixel 6 Pro升级Android 13变砖后的Fastboot全分区修复实战指南,详细解析变砖原因、必备工具准备、Fastboot模式解锁、全分区擦除操作及手动刷入官方ROM的完整流程,帮助用户高效解决设备变砖问题。

weixin_28693447的博客 485

spring事务配置

1.使用spring的xml配置文件中管理事务 <!-- 定义事务管理器 --> <!--dataSource为已经配置好的数据源--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> ...

weixin_39912640的博客 289

CTF命令执行绕过实战:从空格过滤到无回显外带的7种核心姿势

命令执行漏洞是Web安全中的常见高危漏洞,其核心原理在于应用程序未对用户输入进行充分过滤,导致攻击者能够注入并执行系统命令。在真实环境中,安全防护措施(如WAF、输入过滤函数)普遍存在,因此漏洞利用的关键技术在于“绕过”这些过滤机制。理解过滤器的运作逻辑(如黑名单、白名单、转义、长度限制)是成功绕过的前提。通过系统学习**空格绕过**、**命令黑名单绕过**、**编码混淆**等基础技巧,并结合**无回显外带**、**反弹Shell**等高级利用链,安全研究人员能够有效应对复杂防护场景。本文以CTFshow

weixin_29315091的博客 370

Dify+MCP Server打造禅道AI智能助手

Dify AI与MCP Server结合打造的禅道AI智能助手,实现了项目管理智能化升级。该方案通过大语言模型和自动化工作流,提供四大核心功能:1)自动化报表生成,支持多维度数据统计与可视化;2)禅道系统管理操作,简化产品/项目/任务管理流程;3)基于知识库的智能问答系统;4)数据库灵活查询与可视化输出。系统采用分层架构,通过MCP协议实现AI与数据源解耦,解决了传统禅道在数据孤岛、工具碎片化等问题。实际应用验证了其在用户管理、任务创建、Bug处理等场景的高效性,显著提升了项目管理效率。

oNew_Lifeo的博客 1708

【Spring】Spring事务配置

Spring事务配置 首先本文主要讲Spring配置事务的三种方式,目录如下: 一、Xml配置方法 二、Xml和注解配置 三、纯注解配置 首先附上需要的一些Java类: /* 学生实体类 */ public class Student implements Serializable { private Integer id; private String name; pri...

renjingjingya0429的博客 599

芯片ATE测试PAT(Part Average Testing)学习总结-20250916

文章摘要:零件平均测试(PAT)是半导体制造中基于统计学的质量控制方法,分为静态和动态两种类型。静态PAT通过预先设定的固定限值(每6-8批次更新)筛选异常芯片,计算采用稳健平均值和四分位间距。动态PAT则根据实时数据调整限值,能更精确识别异常而不误判合格芯片。两种方法均采用"均值±6倍标准差"的计算公式,但动态PAT具有更好的适应性和准确性。该方法通过统计分析提高了芯片产品的质量和可靠性。

歌颂苦难的行为是无耻的; 1190

spring事务配置的五种方式

https://blog.youkuaiyun.com/m8396017/article/details/51615806 spring事务配置的五种方式 第一种方式:每个Bean都有一个代理 第二种方式:所有Bean共享一个代理基类 第三种方式:使用拦截器 第四种方式:使用tx标签配置的拦截器 第五种方式:全注解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只..

yygr的博客 3843

内网渗透(二)之基础知识-工作组介绍

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都 列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1219

华为OD机试双机位C卷-恢复数字序列 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 恢复数字序列,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 恢复数字序列。

qq_45776114的博客 1203

在Spring框架中,XML配置事务

它的父bean是。这个bean的目标bean(即被代理的bean)是test。属性定义了事务的属性。在这个例子中,表示这个配置适用于目标bean的所有方法(是一个通配符)。表示这些方法需要在事务中运行,如果当前没有事务,就会创建一个新的事务。表示如果方法执行过程中抛出了异常,那么该异常不会被视为回滚事务的原因。也就是说,即使test的方法在执行过程中抛出了异常,事务仍然会提交,而不是回滚。:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务。这是最常用的设置。

比起日出,我更喜欢日落。我的意思是比起遇见你,我更喜欢与你终老 1304

uniapp:实现圆盘/色盘取色器组件,圆环颜色选择器用户可拖拽选择颜色值实时更新用户选择的颜色数据,拖动丝滑流畅不卡顿(uniapp小程序/手机h5网页/安卓苹果app/nvue都能使用,详细源码)

uniapp项目中使用颜色选择器,uniapp实现简单圆形色盘、取色器、拾色器组件,Uniapp自定义颜色选择器取色器,圆形的颜色选择器,uniapp颜色拾取器,拾色器 取色器 颜色选择器,uniapp vue3圆形的色盘取色,uni-app如何封装一个取色器组件,用uniapp写调色板,uniapp颜色选择器插件,实现圆环颜色选择器,Uni-app在App端使用颜色选择器,uniapp微信小程序圆盘颜色选择,uniapp H5网页实现圆形的取色器,使用canvas实现的简单圆形色盘,可自定义相关大小,un

✅ 精选推荐文章 4534

在Spring中配置Hibernate事务的方法

纵观以上四种在Spring中配置Hibernate事务的方法,其核心都是一样的,不同的只是实现的方式而已。所以看到这,这篇博文中你只需要记住4句话,就可以轻松理解在Spring中配置Hibernate事务的核心: 1.配置SessionFactory 2.配置事务容器 3.配置事务规则 4.配置事务入口 ![在这里插入图片描述]...

weiwjacsdn的博客 1542

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

spring mvc 事务配置,spring 事务配置说明

新建项目记录下springmvc和spring的事务配置,解决事务不回滚的问题。 问题说明: Spring容器优先加载由ServletContextListener(applicationContext.xml)产生的父容器,而SpringMVC(spring-mvc.xm...

chijunmei7041的博客 172

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

spring事务xml配置

<?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:aop="http://www.spr...

zhouLucus的博客 382

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring事务——Spring 2.X的事务配置策略

Spring 2.X的事务配置策略     虽然前面介绍的TransactionProxyFactoryBean配置策略简单易懂,但配置起来极为麻烦:每个目标Bean都需要配置一个TransactionProxyFactoryBean代理,这种方式将导致配置文件急剧增加。     Spring 2.X的XMLSchema方式提供了更简洁的事务配置策略,Spring 2.X提供了tx命名

caomiao2006的专栏 1248

spring事务属性配置

可以参考文章 可分为注解以及aop两种形式配置 本例子采用spring+mybatis+springmvc+druid 因为涉及到两个数据库,所以配置了两个 数据源(druid)+ sqlSessionFactory + MapperScannerConfigurer +事务管理器 mybatis.xml配置如下 &lt;?xml version="1.0" encoding="UTF-...

sinat_35619327的博客 327

Spring事务注解配置

一,spring基于注解式的事务配置方法:@Transactional 1.xml配置&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSche...

anyeoo的博客 3298
上一篇: SpringMVC之文件上传
下一篇: Spring单元测试
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值