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);
|
return (DataSource) buildMethod.invoke(o6);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ErrorCreateDataSourceException(
|
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.DataSourceCreator;
|
||||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
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.ConfigMergeCreator;
|
||||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -66,7 +67,12 @@ public class BeeCpDataSourceCreator implements DataSourceCreator {
|
|||||||
config.setDriverClassName(driverClassName);
|
config.setDriverClassName(driverClassName);
|
||||||
}
|
}
|
||||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||||
|
try {
|
||||||
return new BeeDataSource(config);
|
return new BeeDataSource(config);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ErrorCreateDataSourceException(
|
||||||
|
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
BeeDataSource beeDataSource = new BeeDataSource();
|
BeeDataSource beeDataSource = new BeeDataSource();
|
||||||
try {
|
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.DataSourceCreator;
|
||||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
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.ConfigMergeCreator;
|
||||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -53,7 +54,13 @@ public class Dbcp2DataSourceCreator implements DataSourceCreator {
|
|||||||
dataSource.setDriverClassName(driverClassName);
|
dataSource.setDriverClassName(driverClassName);
|
||||||
}
|
}
|
||||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||||
|
try {
|
||||||
dataSource.start();
|
dataSource.start();
|
||||||
|
}catch (Exception e) {
|
||||||
|
|
||||||
|
throw new ErrorCreateDataSourceException(
|
||||||
|
"dynamic-datasource create Dbcp2 database named " + dataSourceProperty.getPoolName() + " error", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return dataSource;
|
return dataSource;
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ public class DruidDataSourceCreator implements DataSourceCreator {
|
|||||||
try {
|
try {
|
||||||
configMethod.invoke(dataSource, properties);
|
configMethod.invoke(dataSource, properties);
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ignore) {
|
||||||
|
// Druid only prints logs when copying property errors
|
||||||
}
|
}
|
||||||
//连接参数单独设置
|
//连接参数单独设置
|
||||||
dataSource.setConnectProperties(config.getConnectionProperties());
|
dataSource.setConnectProperties(config.getConnectionProperties());
|
||||||
@ -135,8 +135,9 @@ public class DruidDataSourceCreator implements DataSourceCreator {
|
|||||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||||
try {
|
try {
|
||||||
dataSource.init();
|
dataSource.init();
|
||||||
} catch (SQLException e) {
|
} catch (Exception e) {
|
||||||
throw new ErrorCreateDataSourceException("druid create error", e);
|
throw new ErrorCreateDataSourceException(
|
||||||
|
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dataSource;
|
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.DataSourceCreator;
|
||||||
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
|
||||||
import com.baomidou.dynamic.datasource.enums.DdConstants;
|
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.ConfigMergeCreator;
|
||||||
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
|
||||||
import com.zaxxer.hikari.HikariConfig;
|
import com.zaxxer.hikari.HikariConfig;
|
||||||
@ -82,14 +83,19 @@ public class HikariDataSourceCreator implements DataSourceCreator {
|
|||||||
config.setDriverClassName(driverClassName);
|
config.setDriverClassName(driverClassName);
|
||||||
}
|
}
|
||||||
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
|
||||||
|
try {
|
||||||
return new HikariDataSource(config);
|
return new HikariDataSource(config);
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new ErrorCreateDataSourceException(
|
||||||
|
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
config.validate();
|
config.validate();
|
||||||
HikariDataSource dataSource = new HikariDataSource();
|
HikariDataSource dataSource = new HikariDataSource();
|
||||||
try {
|
try {
|
||||||
configCopyMethod.invoke(config, dataSource);
|
configCopyMethod.invoke(config, dataSource);
|
||||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
} 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;
|
return dataSource;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user