zoukankan      html  css  js  c++  java
  • nacos+Seata+Mybatis plus 教程

     

    1、环境配置

    下载:https://github.com/seata/seata

     2、配置:配置的是 conf下的file.conf与registry.conf

    file.conf

    由文件的形式改为数据库的形式工作,所以下面配置的是数据库信息与最上面的组信息,需要记住这个组名(可自起 *_tx_group)

     registry.conf

    配置了注册中心,3333是nacos的一个节点

     配置数据库

    "seata" 数据库sql来源:conf > db.store.sql 、版本源码查看(这里是v1.00) +业务数据库

    undo_log 公共表,sql :查看(v1.00) (小于1.00 ,conf > db_undo_log.sql)

    3、启动Seata ,直接文件启动   root@innor:/usr/local/seata/seata-1.0.0/bin# ./seata-server.sh

    4、在项目中配置

    依赖:

            <!--seata-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
                <!-- 因为兼容版本问题,所以需要剔除它自带的seata的包 -->
                <exclusions>
                    <exclusion>
                        <artifactId>seata-all</artifactId>
                        <groupId>io.seata</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.seata</groupId>
                <artifactId>seata-all</artifactId>
                <version>1.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
            </dependency>
            <!--mybatis-plus-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
            </dependency>

    yml

    组名与bruid数据源的配置

     主启动类:

    @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源的自带创建
    ...

    配置:

    //用于Seata的数据源配置
    @Configuration
    public class DataSourceConfig {
    
    
        /**
         * 从配置文件获取属性构造datasource,注意前缀,这里用的是druid,根据自己情况配置,
         * 原生datasource前缀取"spring.datasource"
         *
         * @return
         */
        @ConfigurationProperties(prefix = "spring.datasource")
        @Bean
        public DruidDataSource druidDataSource(){
            return new DruidDataSource();
        }
        /**
         * 构造datasource代理对象,替换原来的datasource
         *
         * @param druidDataSource
         * @return
         */
        @Primary
        @Bean("dataSource")
        public DataSourceProxy dataSourceProxy(DataSource druidDataSource) {
            return new DataSourceProxy(druidDataSource);
        }
    }

    将file.conf与registry.conf复制到项目的resource下

    业务:

    在事务操作的服务加上注解,注意OpenFeign不要写实现方法,因为调用出问题,且没有后备方法就会报错,报错就会使数据回滚。

    @GlobalTransactional(name = "fsp-test" , rollbackFor = Exception.class)

  • 相关阅读:
    #2020征文TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记
    设计器打开某表单时提示:[某某表单]已经由用户[xxx]打开需解锁
    有效性设置解疑
    表单打开时显示空白页面解决办法
    工作流_知会设置
    单元格中既有公式又可以录入数据,怎么实现?
    更改系统时间
    下拉框改变后,如何清空后面几个单元格的值?
    如何调整人员的部门?
    如何修改iis访问端口
  • 原文地址:https://www.cnblogs.com/zjazn/p/14959379.html
Copyright © 2011-2022 走看看