十五 Springboot-配置Spring事务

SpringBoot中事务配置 SpringBoot创建的项目,默认没有事务,还是需要自己配,真是日了狗。还有那个启动类,对,就是包含main方法的那个类一定要放在包的最外层,最外层,最外层,不然有很多坑。包括但不限于不能扫描到你配置的类,连接ES时自定义接口无法自动注入等等。 1.Xml方式 跟Spring中差不多两步骤 ①.在resources文件夹下创建xml文件。例如:transaction.xml 别问我为... 阅读详情

15.1 Spring事务回顾

15.1.2 原理

​ Spring的事务是使用的是AOP,AOP的底层使用动态代理实现的。

15.1.3 使用

  1. xml

    TransationManager:需要在xml中配置一个事务管理器
    Advisor:通知
    PointCUt:通过切面应用通知.
    
  2. 注解式

    TransationManager:需要在xml中配置一个事务管理器
    打注解@Transational:在需要配置事务类上面加注解
    扫描注解</tx:annotationDriven>:xml中需要配置注解支持
    

​ 推荐使用注解式,比较简单

15.2 Springboot配置Spring事务

15.2.1 原理概述

​ Springboot推荐使用注解式事务,并且已经给我们做了自动配置,我们只需打@Transational注解就ok了

TransationManager:需要在xml中配置一个事务管理器 已经自动配置
打注解@Transational:在需要配置事务类上面加注解 需要自己做
扫描注解</tx:annotationDriven>:xml中需要配置注解支持 已经自动配置

15.2.2 使用

  1. 在Springboot-myabtis测试

    我们可以在Jdbc或Spring data jpa或者Mybatis中测试,我就选择在Mybatis中测试

  2. 代码实现

    /**
     * BaseServiceIMPl要实现基础接口防范
     * @param <T>
     */
    @Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
    public class BaseServiceImpl<T> implements IBaseService<T> {
    
        //必须加泛型  我们使用的不是BaseMapper,是子类(DepartmentService)所对应的Mapper(DepartmentMapepr)
        @Autowired
        private BaseMapper<T> mapper;
    
        @Transactional
        @Override
        public void add(T t) {
            mapper.save(t);
        }
    
        @Transactional
        @Override
        public void delete(Long id) {
    
            mapper.remove(id);
        }
    
        @Transactional
        @Override
        public void update(T t) {
    
            mapper.update(t);
        }
    
        @Override
        public T getById(Long id) {
            return mapper.loadById(id);
        }
    
        @Override
        public List<T> getAll() {
            return mapper.loadAll();
        }
    
        @Override
        public PageList<T> queryPage(BaseQuery query) {
            Long count = mapper.queryCount(query);
            if (count==0){
                return new PageList<>();
            }
            List<T> data = mapper.queryData(query);
            return new PageList<>(count,data);
        }
    
        @Transactional
        @Override
        public void bulkDel(List<Long> ids) {
    
            mapper.batchRemove(ids);
        }
    }
    
    

15.3 小结

​ 本章节学习了再Springboot中怎么配置事务。

Java面试题超详细讲解框架系列之十五【Spring & SpringBoot常用注解篇】 Spring&SpringBoot注解超详细讲解,各种实例让你不会都难 阅读详情

相关推荐

想在瑞芯微RK3588上跑视频分类模型?避开3D卷积这个坑,试试这几种NPU友好的方案

本文探讨了在瑞芯微RK3588上部署视频分类模型时如何避开3D卷积的性能陷阱,提供了三种NPU友好的替代方案:MobileNetV2+GRU组合、Temporal Shift Module(TSM)和帧级池化。这些方案在保持较高准确率的同时,充分利用RKNPU的硬件加速能力,显著提升推理效率。文章还分享了从模型转换到部署优化的完整流程和实战经验。

weixin_28724319的博客 418

springboot---mybatis操作事务配置的处理

目前大多数的项目都是通过spring或者springboot来开发的,并且项目里面操作数据库常用的有mybatis\mybatis-plus等,在操作数据库的时候,经常会使用事务的处理,因为在操作数据库的时候,如果出现异常的话,所有的数据库操作都能够回滚操作,避免造成一些异常数据的问题。目前网络上搜索的都是原始的配置方式,比如说使用xml进行bean的配置,或者说直接在方法头上面进行添加注解的方式进行调用的,本文主要介绍通过配置类进行管理实务的方式,统一的管理、统一的处理方式。

喜欢猪猪 4655

DSP28335笔记——内部Flash中进行数据读写(Flash_API的使用)

Program时的报错返回值较为常见,对返回值30、31进行详解:返回值为30:每次操作写入16位的字节,直到Buffer中的数据全部写入,若写入的数据位超过16位时则返回值30。返回值为31:表示尝试将已有数据位上的0写成1。一般情况下,在Program操作之前,会将指定部分中的数据进行擦除;但擦除函数执行时间较久,且只能以扇区为单位进行擦除,因此也可以在已有数据的基础上再进行Program,但无法将已有数据的位中的0值写成1。

m0_46621336的博客 8750

Springboot事务配置

Springboot事务配置

懒起来 904

保姆级教程:用MS建完分子模型,如何一键转成LAMMPS能用的data文件?

本文详细介绍了如何将Materials Studio(MS)构建的分子模型转换为LAMMPS可用的data文件的全流程。重点讲解了力场选择、环境配置、转换命令参数解析及常见问题排查,帮助初学者快速掌握MS与LAMMPS之间的数据转换技巧,特别适合计算材料学领域的研究人员。

weixin_42665255的博客 471

光学设计仿真软件:Code V_(8).场曲和色差校正

通过以上步骤和代码示例,用户可以更好地理解如何在Code V中进行场曲和色差的校正。这些技术不仅有助于提高光学系统的成像质量,还可以为后续的光学设计提供重要的参考。在实际应用中,用户可以根据具体需求选择合适的校正方法和优化策略,以达到最佳设计效果。

kkchenjj的博客 1786

spring boot 事务配置

事务的作用这里不细说,相信很多人也在工作中使用过。 那么在spring-boot是如何配置事务的,事实上非常简便。 直接贴代码吧。 首先配置数据源 myqlDataSource,这个就不说了。之前的博客有。 接着开启事务。 @EnableTransactionManagement @Configuration public class TransactionManagement...

weixin_30892987的博客 86

搭建问答系统

数据描述 import docx import jieba from gensim.models import Word2Vec import os import numpy as np import pickle as pk import warnings from copy import deepcopy warnings.filterwarnings("ignore") from mu...

微信号:RunsenLiu 1840

SpringBoot配置全局事务管理

一、注解方式 1、在SpringBoot的启动类上加入 @EnableTransactionManagement @SpringBootApplication // 开启事务支持 @EnableTransactionManagement public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 2、在需要事务支持的类(

weixin_44953227的博客 1万+

【BUG已解决】pip install 出现 error: Microsoft Visual C++ 14.0 or greater is required 解决方案

方案磁盘占用适用场景推荐指数安装Build Tools3-6GB长期Windows Python开发⭐⭐⭐⭐⭐寻找预编译wheel无额外占用只是想快速装上某个包⭐⭐⭐⭐⭐用conda安装视包而定已经在用conda环境⭐⭐⭐⭐⭐升级到新版本无额外占用库本身有更新的预编译版本⭐⭐⭐⭐使用WSL2需要额外配置Linux子系统频繁遇到Windows编译问题⭐⭐⭐⭐的核心是Windows 缺少本地 C/C++ 编译器,而目标包需要在本机编译。先看是否有捷径。

博客 1万+

基于simulink的车道保持辅助系统(LKA)的仿真与实现

本文介绍了如何利用Simulink实现车道保持辅助系统(LKA)的仿真与建模。首先对比了车道偏离预警(LDW)和LKA的功能差异,强调LKA的主动干预特性。接着详细阐述了LKA系统架构,包括环境感知、决策控制等核心组件,并基于自行车模型建立车辆横向动力学方程。 文章重点演示了Simulink建模步骤:搭建车辆动力学模型、设计LKA控制器(采用LQR算法)、实现执行器接口和驾驶员干预检测。通过四个典型场景的仿真测试,验证了系统在直道行驶、弯道跟踪等工况下的控制性能,并给出了关键评价指标。最后展望了MPC控制、

amy_mhd的博客 228

【二十四】springboot整合spring事务详解以及实战

springboot整合spring事务详解以及实战

weixin_56995925的博客 7999

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【二十七】springboot实现多线程事务处理

实现多线程事务处理

weixin_56995925的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringBoot教程(二十五) | SpringBoot集成AOP实现事务管理

SpringBoot集成AOP实现事务管理

qq_20236937的博客 639

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Spring学习(十五)——SpringBoot整合Mybatis

介绍了SpringBoot整合Mybatis的步骤以及事务控制。

点滴记录IT技术进程 403

SpringBoot教程(二十五) | SpringBoot配置多个数据源

SpringBoot教程(二十五) | SpringBoot配置多个数据源

qq_20236937的博客 3352

Spring 学习总结笔记【十五、SpringBoot配置文件】

SpringBoot两种配置文件,properties与yaml

qq_51938362的博客 215

三十五、SpringBoot配置属性之DataSource

datasourcespring.dao.exceptiontranslation.enabled是否开启PersistenceExceptionTranslationPostProcessor,默认为true spring.datasource.abandon-when-percentage-full设定超时被废弃的连接占到多少比例时要被关闭或上报 spring.datasource.allow-

等风的帆 2794

面渣逆袭:Spring三十五问,四万字+五十图详解

Java程序员面试,Spring必问! 四万字+五十图,详解Spring三十五问,这下,面试稳了。

三分恶的博客 4645

精选Spring Boot三十五道必知必会知识点

  Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力!      问题一      Spring Boot、Spring MVC 和 Spring 有什么区别?      1、Spring      Spring最重要的特征是依赖注入。所有 SpringModule...

li123128的博客 193

第二十五章 SSM整合打通Mysql数据库控制事务

1.Spring 常⻅的事务管理 事务:多个操作,要么同时成功,要么失败后⼀起回滚 具备ACID四种特性 Atomic(原⼦性) Consistency(⼀致性) Isolation(隔离性) Durability(持久性) 常⻅的Spring事务管理⽅式 编程式事务管理 代码中调⽤beginTransaction()、commit()、rollback()等事务管理相关的⽅法,通过TransactionTempalte⼿动管理事务(⽤的少) 声明式事务管理 通过AOP实现,可配置⽂

qq_15906903的博客 1013

springboot 十五 原生注解与Spring方法注入

文章目录使用Servlet API官方文档配置扫描原生组件原生的Servlet原生的过滤器原生的监听器使用注册的方式DispatchServlet 如何注册进来?原生的Servlet为什么不会进入Spring流程 使用Servlet API 官方文档 官方文档 - Servlets, Filters, and listeners 要注意原生的servlet不会进入springboot配置的拦截器里面 配置扫描原生组件 @ServletComponentScan(basePackages = "com") @

qq_47431361的博客 718

springboot的嵌入式web容器_关于Spring Boot 这可能是全网最好的知识点总结

专注于Java领域优质技术号,欢迎关注作者:ArainSpring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力!问题一Spring Boot、Spring MVC 和 Spring 有什么区别?1、SpringSpring最重要的特征是依赖注入。所有 SpringModul...

weixin_39527292的博客 327

SpringBoot:三十五道SpringBoot面试题及答案

SpringBoot面试前言今天博主将为大家分享三十五道SpringBoot面试题及答案,不喜勿喷,如有异议欢迎讨论! Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力! 问题一:Spring Boot、Spring MVC 和 Spring 有什么区别?1. ...

weixin_30654419的博客 400

精选Spring Boot三十五道面试题,快来了解一下!

精选Spring Boot三十五道面试题,快来了解一下! Java架构解析2019-02-26 20:36:35 Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力! 问题一 Spring Boot、Spring MVC 和 Spring 有什么区别? 问...

u013322876的博客 329
上一篇: 十四.Springboot-MyBatis集成
下一篇: 十六 Springboot-配置Druid连接池
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值