Jelajahi Sumber

优化动态数据源配置

zhouhao 8 tahun lalu
induk
melakukan
99c97a9aec

+ 8 - 0
hsweb-datasource/hsweb-datasource-api/pom.xml

@@ -35,5 +35,13 @@
             <artifactId>hsweb-boost-aop</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.hswebframework</groupId>
+            <artifactId>hsweb-easy-orm-rdb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 10 - 0
hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DataSourceHolder.java

@@ -39,6 +39,16 @@ public final class DataSourceHolder {
         return dynamicDataSourceService.getDefaultDataSource();
     }
 
+    /**
+     * 根据指定的数据源id获取动态数据源
+     * @param dataSourceId 数据源id
+     * @return 动态数据源
+     * @throws DataSourceNotFoundException 如果数据源不存在将抛出此异常
+     */
+    public  static DynamicDataSource dataSource(String dataSourceId){
+        checkDynamicDataSourceReady();
+        return dynamicDataSourceService.getDataSource(dataSourceId);
+    }
     /**
      * @return 当前使用的数据源
      */

+ 2 - 0
hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSource.java

@@ -23,4 +23,6 @@ public interface DynamicDataSource extends DataSource {
      * @see DatabaseType
      */
     DatabaseType getType();
+
+    DataSource getNative();
 }

+ 6 - 1
hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSourceProxy.java

@@ -27,11 +27,16 @@ public class DynamicDataSourceProxy implements DynamicDataSource {
         this.proxy = proxy;
     }
 
-    public DynamicDataSourceProxy(String id, DataSource proxy) throws SQLException {
+    public DynamicDataSourceProxy(String id, DataSource proxy) {
         this.id = id;
         this.proxy = proxy;
     }
 
+    @Override
+    public DataSource getNative() {
+        return proxy;
+    }
+
     @Override
     public String getId() {
         return id;