SpringCloud ConfigServer中,可能会配置多个yml文件进行组合,当@Value没有读取到相应的字段的时候,就会报 Could not resolve placeholder的错误。
在第一个application.yml下找不到的时候,就不会继续找下去了,直接报错。
在启动类中添加如下Bean,继续查找后续的yml文件
@Bean
public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();
c.setIgnoreUnresolvablePlaceholders(true);
return c;
}
该方式主要是忽略Could not resolve placeholder的错误,使程序能够正常启动,如果PlaceHolder还是没能正常读取到数据的情况下,在程序运行的过程当中,还是会报出诸如空指针等数据异常的错误。
还需要检查其他方面的配置,比如是不是简单的拼写错误,yml的格式是否书写正确,需要加空格的地方是不是都有空格,@Value注解所在的类有没有被引入到Spring的bean管理中等等,一般情况下都是比较基础的问题导致的这种错误。其他的基本比较少出现,遇到的时候在具体分析。