1. springBoot自动扫描的配置文件路径
1、默认位置:
Spring Boot默认的配置文件名称为application.properties,SpringApplication将从以下位置加载application.properties文件,并把它们添加到Spring Environment中:
- 当前目录下的/config子目录,
- 当前目录。
- 一个classpath下的/config包
- classpath根路径(root)
这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)。并且,如果存在多个重名的application.properties。
注:Spring-boot配置文件的加载,先在与jar同级下查找,如果没有就去同级的config下查找;如果再没有,就在jar包中去查找相应的配置文件,如果再没有,就去jar包中的config下去查找。当查找到对应配置片段时,采用增量替换的方式来进行替换。
2. 自定义位置
如果不喜欢application.properties这个文件名或者需要自定义配置文件位置,在启动Spring应用的时候,可以传入一个spring.config.location参数指定配置文件位置,
例如:
java -jar xxxxx.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
上述例子加载了两个配置文件,分别位于根目录下的:default.properties,override.properties。
3. 使用profile
刚开始将项目打包之后,发现配置文件一直不起作用。
后来发现是打完包,jar中配置文件在resource中,不在config下,所以获取不到。
然后在启动命令中加上路径的参数,可以访问到了。
使用profile之后,主配置文件可以访问到,每个环境的配置文件又找不到了。
是因为获取到profile之后,他还是去默认路径下找,所以还是找不到。
解决办法,只有把resource目录改成config,问题解决。