springboot(整合事务和分布式事务)

springboot +mybatis 单数据源,事务

事务:简单理解指的是一组操作,里面包含许多个单一的逻辑,只要有一个逻辑没有执行成功 ,那么都算失败。所有的数据都回归到最初的状态(回滚)

代码实例:

@RequestMapping("/testTranSctional")
    @ResponseBody
    public void testTranSctional(String name, Integer age) {
        userMapperTest01.insert(name, age);
        int i = 2 / 0;
    }

以上示例向数据库插入一条记录,name和age,如果不适用事务 则  程序报错,但是 数据库会对一条数据

单数据源完成事务 ,只需要 添加 事务注解 则可以

    @RequestMapping("/testTranSctional")
    @ResponseBody
    @Transactional
    public void testTranSctional(String name, Integer age) {
        userMapperTest01.insert(name, age);
        int i = 2 / 0;
    }

多数据源在补充:

关于springboot 项目 打包(mvn package),spring boot项目是一个java 项目,打包的时候需要指定 启动的类

<build>
        <finalName>springboot-mybatis</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <maimClass>com.example.SpringbootMybatisDemoApplication</maimClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
 <configuration>
              <maimClass>com.example.SpringbootMybatisDemoApplication</maimClass>
  </configuration> 如果没有 这个 启动类  则 启动的时候报错



原文地址:https://www.cnblogs.com/920913cheng/p/10364477.html

时间: 2024-07-30 14:31:44

springboot(整合事务和分布式事务)的相关文章

Java事务(七) - 分布式事务 - spring + JTA + jotm

一. 前言: 在写这篇博客之前,我们需要弄清楚两个概念:本地事务和分布式事务. 本地事务:只处理单一数据源,比如单个数据库. 分布式事务:处理多种异构的数据源, 比如某个业务操作中同时包含JDBC和JMS或者某个操作需要访问多个不同的数据库. Java通过JTA完成分布式事务, JTA本身只是一种规范, 本篇博客将使用JOTM作为实现, 后续还会使用Atomikos实现. 二. 业务背景: 假定我们有这样一个需求:当我们新建一个用户的时候需要往一个DB中插入一条用户记录,还需要往另一个DB中记录

从本地事务到分布式事务到微服务下事务

从本地事务到分布式事务到微服务下事务 一.传统本地事务 传统单服务器,单关系型数据库下事务比较简单,完全可用很简单的实现ACID,实际中我们实现一个业务时只需要:开启一个事务-操作数据库-提交/回滚这个事务,这样就完美的实现了一次事务操作,更简单点我们通常会通过spring集成事务直接指定在哪些服务什么样的方法执行什么样的事务即可,更甚至我们业务实现基本都忽略了事务,具体图如下: 二.传统分布式事务 在传统一服务,一个关系数据库架构基础上,随着访问量的增大,单机很明显已满足不了现状,于是我们顺其

本地事务和分布式事务工作实践 【转】

一:从事务的历史说起 知已知彼,百战不败.想了解事务,我们从事务的历史说起. 在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一睹为快, 在关系型数据库中的事务是通过begin transaction,rollback transaction, commit 等关键字来实现事务的. BEGIN TRANSACTION  UPDATE [dbo].[T_ACCOUNT] SET BALANCE = BALANCE + @amo

Java事务(八) - 分布式事务 - spring + JTA + atomikos

一. 前言: 上一篇博客中,我们使用jotm实现了分布式事务, 本篇将使用atomikos实现. 基本的代码都是一样的,就是配置略有不同. 二. 代码实现: 1. 代码结构图: 2. 配置文件:ApplicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

本地事务和分布式事务工作实践

一:从事务的历史说起 知已知彼,百战不败.想了解事务,我们从事务的历史说起. 在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一睹为快, 在关系型数据库中的事务是通过begin transaction,rollback transaction, commit 等关键字来实现事务的. BEGIN TRANSACTION  UPDATE [dbo].[T_ACCOUNT] SET BALANCE = BALANCE + @amo

本地事务和分布式事务工作实践 [转]

一:从事务的历史说起 知已知彼,百战不败.想了解事务,我们从事务的历史说起. 在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一睹为快, 在关系型数据库中的事务是通过begin transaction,rollback transaction, commit 等关键字来实现事务的. BEGIN TRANSACTION  UPDATE [dbo].[T_ACCOUNT] SET BALANCE = BALANCE + @amo

设计----【分布式事务】分布式事务和解决方案

一.前言 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一下. 二.数据库事务 在说分布式事务之前,我们先从数据库事务说起. 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到.但是即使如此,可能对于一些细节问题,很多人仍然不清楚.比如很多人都知道数据库事务的几个特性:原子性(Atomicity ).一致性( Consistency ).隔离性或独立性( Isolation)和持久性(

【分布式事务】分布式事务解决方案

一.第一种方案:能不用分布式事务就不用 明确系统是否真的需要分布式事务: 因为不论任何一种分布式解决方案都会增加你系统的复杂度,这样的成本还是挺高的,千万不要因为追求某些设计,而引入不必要的成本和复杂度. 二.第二种方案:XA 分布式事务 (MySQL是支持XA事务的) 属于2PC:XA是由X/Open组织提出的分布式事务的规范. X/Open DTP(X/Open Distributed Transaction Processing Reference Model) 是X/Open 这个组织定

SpringBoot整合MYBATIS,多数据源,事务,支持JAVA -JAR 启动.

用了一段时间SpringBoot,之前配置MYBATIS ,在打包WAR 放到tomcat下正常,但是WAR已经过时了,现在流行直接打包JAR 丢到DOCKER 里,无奈JAR 启动的时候MAPPER 扫描有问题,只能说之前整合MYBATIS 的方式不对. 这次的整合应该是不存在加载顺序引起的问题,使用了一段时间,妥妥的,记录下来 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artif