我有很多个人资料,我想把它放到/profiles
文件夹,我不想把它放到classpath:/,classpath:/config/,file:./,file:./config/
,我看到了班级ConfigFileApplicationListener
,有没有另一种方式?
答案 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}}
然后是您想要指向的任何环境。