springboot集成@DS註解實現數據源切換的方法示例

啟用@DS實現數據源切換

POM內添加核心jar包

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

yml配置

spring:
  datasource:
    #配置hikari連接池
    hikari:
      minimum-idle: 4
      maximum-pool-size: 16
      connection-timeout: 10000
      idle-timeout: 30000
      connection-init-sql: set names utf8mb4
    #動態數據源配置
    dynamic:
      #主數據源,默認啟用
      primary: business
      datasource:
        #數據源1
        business:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/db_business?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****
        #數據源2
        user:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/db_user?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****
        #數據源3
        order:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/db_order?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****

“核心”-使用@DS註解

使用@DS註解的核心是什麼呢?

1.註解添加在dao.mapper上無效
2.註解添加到interface Service類上無效
3.註解添加到interface Service方法上無效

那麼,此註解應該如何使用呢?

添加@DS註解到實現類或者實現類的方法上才可以

當註解添加到類上,意味著此類裡的方法都使用此數據源;
當註解添加到方法上時,意味著此方法上使用的數據源優先級高於其他一切配置

@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");
  }

最後

好瞭,就說這麼多瞭,數據源切換的方式、策略有多種,比如按包區分不同數據源的方式、手動配置的數據源的方式,以及@DS註解的方式,該方式的最大特點,相對比較靈活,配置簡潔易懂,後期維護及迭代比較樂觀。

到此這篇關於springboot集成@DS註解實現數據源切換的方法示例的文章就介紹到這瞭,更多相關springboot @DS註解數據源切換內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: