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