【发布时间】:2020-05-23 19:13:45
【问题描述】:
也许是一个奇怪的问题。 我的注册表中有 2 个 DBConnection,运行良好,连接、选择、插入、更新、删除。
connectionONE:
datasource:
password: xxxx
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:oracle:thin:@YYYY
username: zzzzz
connectionTWO:
datasource:
hikari:
auto-commit: false
poolName: Hikari
password: aaaaaa
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:postgresql:bbbbbbbbbb
username: ccccc
对于它们中的每一个,我都有一个 @Configuration 类来读取配置属性
@Bean
@ConfigurationProperties("connectionONE.datasource")
public DataSourceProperties oneDataSourceProperties() {
return new DataSourceProperties();
}
...
在某些情况下,我需要无法/拆除两个连接之一。所以我将其从注册表中删除。
如何修改我的配置类?现在我遇到一个异常并且微服务没有启动并尝试捕获异常:
@Bean
@ConfigurationProperties("configurationONE.datasource")
public DataSource oneDataSource() {
DataSourceBuilder<?> dsb = null;
try {
dsb = oneDataSourceProperties().initializeDataSourceBuilder();
} catch (Exception ex) {
System.out.println("NO Configuration");
}
if (dsb != null)
return dsb.build();
return null;
}
但是以这种方式我提出了另一个异常,可能是由return null引起的:
Caused by: java.lang.IllegalArgumentException: ExistingValue must be an instance of javax.sql.DataSource
at org.springframework.util.Assert.isTrue(Assert.java:136)
at org.springframework.boot.context.properties.bind.Bindable.withExistingValue(Bindable.java:161)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:99)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:89)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:414)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
... 173 common frames omitted
【问题讨论】:
标签: spring spring-boot spring-data-jpa spring-data jhipster