seata 设置手动代理数据源

  • 代码敬上
package org.jeecg.modules.datasource;

import com.alibaba.druid.pool.DruidDataSource;
import io.seata.rm.datasource.DataSourceProxy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment;

import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {
 
   @Autowired
   private Environment env;

   @Bean
   public DataSource getDataSource() {
      DruidDataSource dataSource = new DruidDataSource();
      dataSource.setUrl(env.getProperty("spring.datasource.dynamic.datasource.mitu-cloud-finance.url"));
      dataSource.setUsername(env.getProperty("spring.datasource.dynamic.datasource.mitu-cloud-finance.username"));
      dataSource.setPassword(env.getProperty("spring.datasource.dynamic.datasource.mitu-cloud-finance.password"));
      dataSource.setDriverClassName(env.getProperty("spring.datasource.dynamic.datasource.mitu-cloud-finance.driver-class-name"));
      //这上面是获取配置文件中的信息,url,username,password,driverclassname等
      return dataSource;
   }

   @Primary
   @Bean("dataSource")
   public DataSourceProxy dataSource(DataSource druidDataSource) {
      return new DataSourceProxy(druidDataSource);
   }

}
  • 在启动类上添加上以下注解
@Import(DataSourceConfig.class) //DataSourceConfig是上面配置文件的
  • 同时在@SpringBootApplication注解上排除自动加载数据源
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
  • 启动类上的注解图

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要配置Seata来支持动态数据源,您需要进行以下几个步骤: 1. 引入Seata相关依赖:在您的项目中添加Seata的依赖,这将包括seata-all、seata-spring-boot-starter和seata-configuration。 2. 配置Seata数据源代理:在Seata的配置文件中(一般是file.conf),找到store模块的配置部分,将store.mode设置为"db",并配置store.db驱动类型、链接地址、用户名和密码等。 3. 创建Seata数据库表:使用Seata提供的db_store脚本,创建相应的数据库表。这些表用于存储全局事务信息、分支事务信息以及锁信息。 4. 配置动态数据源:根据您使用的动态数据源框架,如Druid、HikariCP等,在应用的配置文件中配置数据源。确保您的数据源配置与Seata配置文件中的数据库信息一致。 5. 配置Seata代理数据源:在应用的配置文件中,使用Seata提供的DataSourceProxyBeanPostProcessor作为Bean后置处理器,将动态数据源包装成Seata可识别的代理数据源。这样Seata就可以拦截并管理您的事务了。 6. 配置分布式事务:在需要进行分布式事务管理的方法上,添加@GlobalTransactional注解。这将启用Seata对该方法的事务管理。确保该方法所在的服务已经接入Seata。 这些步骤是一般的配置流程,具体配置细节可能因您使用的技术栈和版本而有所不同。建议参考Seata官方文档和示例,以确保正确配置Seata的动态数据源支持。希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值