From 1c1319dd5ee346bc645a15566ecc9f42686c3e14 Mon Sep 17 00:00:00 2001 From: zhaoxl Date: Fri, 18 Aug 2023 17:05:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'op-modules/op-quality/src/main/java/com/op/quality/config'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/quality/config/DynamicDatasource.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/config/DynamicDatasource.java diff --git a/op-modules/op-quality/src/main/java/com/op/quality/config/DynamicDatasource.java b/op-modules/op-quality/src/main/java/com/op/quality/config/DynamicDatasource.java new file mode 100644 index 000000000..e15eb6344 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/config/DynamicDatasource.java @@ -0,0 +1,51 @@ +package com.op.quality.config; + +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +import com.op.common.core.domain.R; +import com.op.common.datasource.creator.DynamicDatasourceCreator; +import com.op.system.api.RemoteUserService; +import com.op.system.api.domain.SysUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 初始化动态数据源 + * + * @ClassName: DynamicDatasource + * @Description: TODO + * @author shichangzhou + * @date 2023年4月19日 下午1:01:30 + */ +@Component +public class DynamicDatasource { + + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Autowired + private RemoteUserService remoteUserService; + + @PostConstruct + public void init() { + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + for (Map dateSource : dateSources) { + DataSourceProperty sdp = new DataSourceProperty(); + sdp.setUrl(dateSource.get("url")); + sdp.setUsername(dateSource.get("userName")); + sdp.setPassword(dateSource.get("password")); + sdp.setDriverClassName(dateSource.get("driveClassName")); + sdp.setPoolName(dateSource.get("poolName"));// 这是数据源的key + sdp.setLazy(false); + dynamicDatasourceCreator.createDynamicDataSource(sdp); + } + + } +}