fix(): 修复数据源启动因空数据源导致程序启动失败的问题
parent
e4fa985e2f
commit
9b41098f32
|
@ -71,8 +71,10 @@ public class ManyDataSource implements ApplicationRunner{
|
||||||
Objects.requireNonNull(dataSourceInfoList())
|
Objects.requireNonNull(dataSourceInfoList())
|
||||||
.stream()
|
.stream()
|
||||||
.map(DataSourceInfo::hostAndPortBuild)
|
.map(DataSourceInfo::hostAndPortBuild)
|
||||||
.forEach(dataSourceInfo -> {
|
.map(druidDataSourceFactory::create)
|
||||||
dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo));
|
.filter(Objects::nonNull)
|
||||||
|
.forEach( druidDataSource -> {
|
||||||
|
dataSourceMap.put(druidDataSource.getName(), druidDataSource);
|
||||||
});
|
});
|
||||||
//设置动态数据源
|
//设置动态数据源
|
||||||
DynamicDataSource dynamicDataSource = new DynamicDataSource();
|
DynamicDataSource dynamicDataSource = new DynamicDataSource();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muyu.cloud.common.many.datasource.factory;
|
package com.muyu.cloud.common.many.datasource.factory;
|
||||||
|
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
|
import com.alibaba.druid.pool.DruidPooledConnection;
|
||||||
import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo;
|
import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
@ -23,6 +24,7 @@ public class DruidDataSourceFactory {
|
||||||
*/
|
*/
|
||||||
public DruidDataSource create(DataSourceInfo dataSourceInfo) {
|
public DruidDataSource create(DataSourceInfo dataSourceInfo) {
|
||||||
DruidDataSource druidDataSource = new DruidDataSource();
|
DruidDataSource druidDataSource = new DruidDataSource();
|
||||||
|
druidDataSource.setName(dataSourceInfo.getKey());
|
||||||
druidDataSource.setUrl(dataSourceInfo.getUrl());
|
druidDataSource.setUrl(dataSourceInfo.getUrl());
|
||||||
druidDataSource.setConnectTimeout(10000);
|
druidDataSource.setConnectTimeout(10000);
|
||||||
druidDataSource.setMaxWait(60000);
|
druidDataSource.setMaxWait(60000);
|
||||||
|
@ -31,8 +33,9 @@ public class DruidDataSourceFactory {
|
||||||
druidDataSource.setBreakAfterAcquireFailure(true);
|
druidDataSource.setBreakAfterAcquireFailure(true);
|
||||||
druidDataSource.setConnectionErrorRetryAttempts(0);
|
druidDataSource.setConnectionErrorRetryAttempts(0);
|
||||||
try {
|
try {
|
||||||
druidDataSource.getConnection(2000);
|
DruidPooledConnection connection = druidDataSource.getConnection(2000);
|
||||||
log.info("{} -> 数据源连接成功", dataSourceInfo.getKey());
|
log.info("{} -> 数据源连接成功", dataSourceInfo.getKey());
|
||||||
|
connection.close();
|
||||||
return druidDataSource;
|
return druidDataSource;
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
log.error("数据源 {} 连接失败,用户名:{},密码 {}, 原因:{}",dataSourceInfo.getUrl(),dataSourceInfo.getUserName(),dataSourceInfo.getPassword(), throwables);
|
log.error("数据源 {} 连接失败,用户名:{},密码 {}, 原因:{}",dataSourceInfo.getUrl(),dataSourceInfo.getUserName(),dataSourceInfo.getPassword(), throwables);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Tomcat
|
# Tomcat
|
||||||
server:
|
server:
|
||||||
port: 8080
|
port: 8081
|
||||||
|
|
||||||
# nacos线上地址
|
# nacos线上地址
|
||||||
nacos:
|
nacos:
|
||||||
|
|
Loading…
Reference in New Issue