spring-boot配置文件:资源/配置文件/应用程序 - *。属性

时间:2018-01-11 10:58:55

标签: spring-boot

我有很多个人资料,我想把它放到/profiles文件夹,我不想把它放到classpath:/,classpath:/config/,file:./,file:./config/,我看到了班级ConfigFileApplicationListener,有没有另一种方式?

1 个答案:

答案 0 :(得分:0)

很难确切地说出您的要求,但听起来您希望将特定于配置文件的属性文件放在/ profiles目录中,而不是默认搜索位置之一。

ConfigFileApplicationListener中,您可以使用ConfigFileApplicationListener.setSearchLocations()

指定/个人资料
  

可以使用指定替代搜索位置和名称   setSearchLocations(String)和setSearchNames(String)。

来自ConfigFileApplicationListener的Javadoc:

  

设置将被视为以逗号分隔的搜索位置   名单。每个搜索位置都应该是目录路径(以。结尾)   " /")并且它将以从中构造的文件名为前缀   setSearchNames(String)搜索名称和配置文件(如果有)   加上属性加载器支持的文件扩展名。地点   按照指定的顺序考虑,后面的项目   优先级(如地图合并)。

在致电SpringApplication之前,通过addListeners() method将自定义run()添加到-Dext.properties.dir=classpath:/profiles/

替代方法

作为一种更简单的解决方法,我发现@ masted的解决方案here这种方法更容易。唯一的缺点是你需要添加一个环境变量,

{{1}}

然后是您想要指向的任何环境。