苞米豆-多資料來源 2.3.2 釋出:支援 spel 從引數獲取資料來源
首先感謝 @心跳 捐贈的200元大紅包,又可以給娃買罐奶粉了。
ofollow,noindex">https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter
dynamic-datasource-spring-boot-starter是一個基於springboot的快速整合多資料來源的啟動器。
其支援Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.0.x 。最新版為2.3.2
演示例子可參考專案下的samples目錄
2.3.x版本主要做了以下改動。
-
重構建立資料來源類。廢棄DataSourceFactory,改為Bean的DynamicDataSourceCreator。
-
自動適配mybatisPlus。 移除引數的mp-enabled。
-
新特性支援spel引數獲取資料來源。(重要 重要 重要 )
@DS("#session.tenantName")//從session獲取 public List selectSpelBySession() { return userMapper.selectUsers(); } @DS("#header.tenantName")//從header獲取 public List selectSpelByHeader() { return userMapper.selectUsers(); } @DS("#tenantName")//使用spel從引數獲取 public List selectSpelByKey(String tenantName) { return userMapper.selectUsers(); } @DS("#user.tenantName")//使用spel從複雜引數獲取 public List selecSpelByTenant(User user) { return userMapper.selectUsers(); }
如果你還想對spel解析的引數進行進一步處理,請注入DynamicDataSourceSpelResolver
。
預設的DefaultDynamicDataSourceSpelResolver
沒有對解析到的引數進行處理直接返回。
有了spel的支援,真正算得上動態了。 比如根據租戶來切換資料來源,比如根據使用者id來切換資料來源。
如果有問題可直接提ISSUE.