Spring启动:加载像application.properties这样的加载资源

时间:2015-05-14 18:11:33

标签: java spring spring-boot

Spring boot在不同位置搜索application.properties: 在classpath,当前文件夹,/ config文件夹等等。

是否有一种以同样的方式加载任何资源的简单方法?

例如,我想加载文件:

  • A.TXT
  • B.XML
  • c.properties

并自己解析,而不是属性文件。

有没有一种简单的方法可以让spring boot找到它们,就像它在不同的位置搜索application.properties一样?

2 个答案:

答案 0 :(得分:1)

简短的回答是,没有办法向Spring Boot询问此问题。但是,您可以查看他们的所有代码。如果您查看他们的ConfigFileApplicationListener类,您可以看到他们如何将DEFAULT_SEARCH_LOCATIONS定义为查找配置文件的位置列表,并将它们存储在Set中。然后,他们使用ResourceLoader循环并检查每个位置是否存在所需的资源。如果您查看他们的代码及其resource documentation,我相信您可以构建自己的服务,从可能的位置列表中获取文件。

答案 1 :(得分:0)

PropertySourcesPlaceholderConfigurer用于在启动时加载属性,您可以像application.properties一样访问其属性

@Bean
    public PropertySourcesPlaceholderConfigurer loadResources() {
    PropertySourcesPlaceholderConfigurer resourceConfigurer = new PropertySourcesPlaceholderConfigurer();
        resourceConfigurer.setLocations(new ClassPathResource("file1"), new ClassPathResource("file2), new ClassPathResource("file3"));
        resourceConfigurer.setIgnoreUnresolvablePlaceholders(false);
        resourceConfigurer.setIgnoreResourceNotFound(false);
        return resourceConfigurer;
    }

注意:在PropertySourcesPlaceholderConfigurer注册的文件之后加载application.properties