jar包配置文件默认读取位置
从 application.properties 以下位置的文件中加载属性并且将其添加到 Spring 的环境当中
1.当前目录下的 /config 子目录
2.当前目录
3.classpath中的 /config 目录
4.classpath根目录
自定义配置文件路径
如果自定义的目录,比如conf的话,这个时候就不能识别了,但可以使用–spring.config.location进行指定路径,执行命令如下:
java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar
–spring.config.location=conf/application.properties
或者
java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar–spring.config.location=/Users/linxiangxian/Downloads/conf/application.properties
自定义配置文件名字
对于自定义的.properties文件:
(1)默认是读取classpath下的xxx.properties文件。
(2)jar包同级下的xxx.properties 不可以直接读取,需要修改代码的配置 @PropertySource 指定多个路径,期望最终被使用的路径放到最后,因为会覆盖之前读取的配置信息。
如:
@PropertySource(value = {“classpath:demo.properties”,“file:./demo.properties”},ignoreResourceNotFound = true)
当我们配置多路径,且多路径下配置文件都存在时,SpringBoot会都加载且会覆盖相同内容。所以当我们配置信息只区分外部和内部路径、内容完全相同时,将file路径写在后面就可以了。
当我们本地启动时,因为不存在file路径,所以会加载classpath;当jar启动时,file路径会覆盖classpath路径下的内容;
ignoreResourceNotFound = true 一定要加上,否则找不到会报错。加上之后会忽略找不到的配置文件。
此时将配置文件demo.properties放到和jar包同级下就可以了