今天启动项目突然报错 报错信息如下
BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.xx.Application]; nested exception is java.util.NoSuchElementException: No value bound
Caused by: java.util.NoSuchElementException: No value bound
at org.springframework.boot.context.properties.bind.BindResult.get(BindResult.java:56)
at com.xx.DynamicDataSourceRegister.setEnvironment(DynamicDataSourceRegister.java:46)
通过上面的信息判断为获取应用配置信息失败
BindResult<Properties> bindResult = binder.bind("spring.datasource", Properties.class);
Properties propertyResolver = (Properties)bindResult.get();
public T get() throws NoSuchElementException {
if (this.value == null) {
throw new NoSuchElementException("No value bound");
} else {
return this.value;
}
}
通过上面的代码得知获取不到spring.datasource配置 但是明明配置了该属性 而且昨天都好好的
看了半天冒看出问题 还是 偶然改了下别的环境后启动没报错 经过对比分析最后发现具体环境下的配置文件profiles错误
application.yml
spring:
profiles:
active: xx
application-xx.yml
spring:
profiles: yy
把yy改成xx既可
提示还是不够友好啊