springboot加载yml格式的自定义配置文件

2021-08-02  本文已影响0人  jeffrey_hjf

加载yml格式的自定义配置文件
加上以下配置文件类

public class YamlPropertySourceFactory implements PropertySourceFactory {

    @Override
    public PropertySource< ? > createPropertySource(String name, EncodedResource resource) throws IOException {
        Properties propertiesFromYaml = loadYamlIntoProperties(resource);
        String sourceName = name != null ? name : resource.getResource().getFilename();
        return new PropertiesPropertySource(sourceName, propertiesFromYaml);
    }

    private Properties loadYamlIntoProperties(EncodedResource resource) throws FileNotFoundException {
        try {
            YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
            factory.setResources(resource.getResource());
            factory.afterPropertiesSet();
            return factory.getObject();
        } catch (IllegalStateException e) {
            Throwable cause = e.getCause();
            if (cause instanceof FileNotFoundException) {
                throw (FileNotFoundException) e.getCause();
            }
            throw e;
        }
    }
}

启动类加上下面这一段

@PropertySource(factory = YamlPropertySourceFactory.class, value = "classpath:xxx.yml")
上一篇 下一篇

猜你喜欢

热点阅读