资讯

展开

SpringBoot-SpringCloud-配置多数据源切换

作者:快盘下载 人气:

在需要的项目内引入 dynamic-datasource-spring-boot-starter 多数据源 依赖

<!--mybatis-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
			<version>${dynamic-ds.version}</version>
		</dependency>

在配置文件中配置主从数据源

# 数据源
spring:
  datasource:
    dynamic:
      primary: master #设置默认数据库
      strict: false
      datasource:
        master:#主数据库
        url: jdbc:mysql://数据库ip:数据库端口/数据库名称?characterEncoding=utf8
        username: #####
        password: ######
        driver-class-name: com.mysql.cj.jdbc.Driver
        slave_1:#从数据库
          url: jdbc:mysql://数据库ip:数据库端口/数据库名称?characterEncoding=utf8
          username: #####
          password: #######
          driver-class-name: com.mysql.cj.jdbc.Driver

使用 ;DS 切换数据源。
;DS 可以注解在方法上或类上;同时存在就近原则 方法上注解 优先于 类上注解。

;DS(;配置的数据源名称;)
;Service
;DS(;slave;)
public class UserServiceImpl implements UserService {

  ;Autowired
  private JdbcTemplate jdbcTemplate;

  public List selectAll() {
    return  jdbcTemplate.queryForList(;select * from user;);
  }
  
  ;Override
  ;DS(;slave_1;)
  public List selectByCondition() {
    return  jdbcTemplate.queryForList(;select * from user where age >10;);
  }
}

同一个方法调用了多个数据源 事务会失效 因为事务是根据数据库事务为基础实现的 所以同一个方法内涉及多个数据库时会导致事务失效

仅作为学习记录使用

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!