springboot+dynamic多數據源配置

springboot+dynamic多數據源配置

來源:https://mp.baomidou.com/guide/dynamic-datasource.htmlhtml

dynamic-datasource-spring-boot-starter 是一個基於springboot的快速集成多數據源的啓動器。mysql

配置

  • pom
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
  <version>${version}</version>
</dependency>
  • 配置數據源。
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能夠註解在方法上和類上,同時存在方法註解優先於類上註解。spring

註解 結果
沒有@DS 默認數據源
@DS("dsName") dsName能夠爲組名也能夠爲具體某個庫的名稱
@Service
@DS("slave")
public class UserServiceImpl implements UserService {

  @Autowired
  private JdbcTemplate jdbcTemplate;

  public List<Map<String, Object>> selectAll() {
    return  jdbcTemplate.queryForList("select * from user");
  }
  @Override
  @DS("slave_1")
  public List<Map<String, Object>> selectByCondition() {
    return  jdbcTemplate.queryForList("select * from user where age >10");
  }
}


相關文章
相關標籤/搜索