1. 修复(#653) 为所有的数据源创建时进行初始化的都添加统一的异常包装返回.
This commit is contained in:
parent
1e4d58ff22
commit
f93fff49c9
@ -87,7 +87,7 @@ public class BasicDataSourceCreator implements DataSourceCreator {
|
||||
return (DataSource) buildMethod.invoke(o6);
|
||||
} catch (Exception e) {
|
||||
throw new ErrorCreateDataSourceException(
|
||||
"dynamic-datasource create basic database named " + dataSourceProperty.getPoolName() + " error");
|
||||
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@ import cn.beecp.BeeDataSourceConfig;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
||||
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
|
||||
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
|
||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -66,7 +67,12 @@ public class BeeCpDataSourceCreator implements DataSourceCreator {
|
||||
config.setDriverClassName(driverClassName);
|
||||
}
|
||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||
return new BeeDataSource(config);
|
||||
try {
|
||||
return new BeeDataSource(config);
|
||||
} catch (Exception e) {
|
||||
throw new ErrorCreateDataSourceException(
|
||||
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||
}
|
||||
}
|
||||
BeeDataSource beeDataSource = new BeeDataSource();
|
||||
try {
|
||||
|
@ -18,6 +18,7 @@ package com.baomidou.dynamic.datasource.creator.dbcp;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
||||
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
|
||||
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
|
||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -53,7 +54,13 @@ public class Dbcp2DataSourceCreator implements DataSourceCreator {
|
||||
dataSource.setDriverClassName(driverClassName);
|
||||
}
|
||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||
dataSource.start();
|
||||
try {
|
||||
dataSource.start();
|
||||
}catch (Exception e) {
|
||||
|
||||
throw new ErrorCreateDataSourceException(
|
||||
"dynamic-datasource create Dbcp2 database named " + dataSourceProperty.getPoolName() + " error", e);
|
||||
}
|
||||
}
|
||||
return dataSource;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class DruidDataSourceCreator implements DataSourceCreator {
|
||||
try {
|
||||
configMethod.invoke(dataSource, properties);
|
||||
} catch (Exception ignore) {
|
||||
|
||||
// Druid only prints logs when copying property errors
|
||||
}
|
||||
//连接参数单独设置
|
||||
dataSource.setConnectProperties(config.getConnectionProperties());
|
||||
@ -135,8 +135,9 @@ public class DruidDataSourceCreator implements DataSourceCreator {
|
||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||
try {
|
||||
dataSource.init();
|
||||
} catch (SQLException e) {
|
||||
throw new ErrorCreateDataSourceException("druid create error", e);
|
||||
} catch (Exception e) {
|
||||
throw new ErrorCreateDataSourceException(
|
||||
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||
}
|
||||
}
|
||||
return dataSource;
|
||||
|
@ -18,6 +18,7 @@ package com.baomidou.dynamic.datasource.creator.hikaricp;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
|
||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
||||
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
|
||||
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
|
||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
@ -82,14 +83,19 @@ public class HikariDataSourceCreator implements DataSourceCreator {
|
||||
config.setDriverClassName(driverClassName);
|
||||
}
|
||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||
return new HikariDataSource(config);
|
||||
try {
|
||||
return new HikariDataSource(config);
|
||||
}catch (Exception e){
|
||||
throw new ErrorCreateDataSourceException(
|
||||
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||
}
|
||||
}
|
||||
config.validate();
|
||||
HikariDataSource dataSource = new HikariDataSource();
|
||||
try {
|
||||
configCopyMethod.invoke(config, dataSource);
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
throw new RuntimeException("HikariConfig failed to copy to HikariDataSource", e);
|
||||
throw new ErrorCreateDataSourceException("HikariConfig failed to copy to HikariDataSource", e);
|
||||
}
|
||||
return dataSource;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user