美文网首页
SpringBoot加载自定义yml文件

SpringBoot加载自定义yml文件

作者: summerwild | 来源:发表于2018-08-24 17:31 被阅读0次

SpringBoot默认支持properties和yml配置文件的读取,但仅支持指定路径下指定名称的配置文件,当想自定义指定路径加载配置文件时,properties文件使用@PropertySource注解即可,但该注解并不支持加载yml!

老版本的SpringBoot可以通过@ConfigurationProperties的方式指定location

@ConfigurationProperties(locations={"classpath:myconfig.yml"})

1.0.4之后该属性就取消了,亲测可行的解决方式是,将下面这个bean加载到任何一个能被spring初始化的地方即可

    @Bean
    public static PropertySourcesPlaceholderConfigurer properties() {
        PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
//        yaml.setResources(new ClassPathResource("myconfig.yml"));
        yaml.setResources(new FileSystemResource("/data/config/myconfig.yml"));
        configurer.setProperties(yaml.getObject());
        return configurer;
    }

接下来就可以就通过@Value注入,愉快的使用属性啦~~~
如果使用docker部署服务,指定路径读取配置文件,就可以把该路径挂载到宿主机,方便修改配置。

相关文章

网友评论

      本文标题:SpringBoot加载自定义yml文件

      本文链接:https://www.haomeiwen.com/subject/edkiiftx.html