springboot+dynamic多数据源配置

 

springboot+dynamic多数据源配置

来源:https://mp.baomidou.com/guide/dynamic-datasource.html

dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。

配置

  • pom

  com.baomidou
  dynamic-datasource-spring-boot-starter
  ${version}
  • 配置数据源。
spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      datasource:
        master:
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
        slave_1:
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
        slave_2:
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://xx.xx.xx.xx:3308/dynamic
       #......省略
       #以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2

使用

使用@DS切换数据源。 
@DS可以注解在方法上和类上,同时存在方法注解优先于类上注解。

注解 结果
没有@DS 默认数据源
@DS("dsName") dsName可以为组名也可以为具体某个库的名称
@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");
  }
}

 

你可能感兴趣的:(java,springboot,多数据源)