SpringBoot:SpringBoot项目的配置文件放在Jar包外加载和jar包打成exe

SpringBoot读取配置文件的优先级为:

第一、项目jar包同级下的config文件夹是优先级最高的,是在执行命令的目录下建config文件夹。(在jar包的同一目录下建config文件夹,执行命令需要在jar包目录下才行),然后把配置文件放到这个文件夹下。
第二、项目jar包同级下直接放properties文件是次优先级,是直接把配置文件放到jar包的同级目录。
第三、项目内部的classpath同级config文件夹是第三优先级,在classpath下建一个config文件夹,然后把配置文件放进去。
第四、项目内部的classpath同级放properties文件是最低优先级,是在classpath下直接放配置文件。
springboot默认是优先读取它本身jar包同级目录下的一个config/application.properties 文件的。
在项目内src/main/resources 文件夹下创建的application.properties 文件的优先级是最低的

 

自定义配置文件

java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

或者

java -jar -Dspring.config.location=D:\config\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar 

 

代码指定加载

复制代码
@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootrestdemoApplication.class, args);
    }
}
复制代码

 

Profile不同环境读取不同配置

不同环境的配置设置一个配置文件,例如:

  • dev环境下的配置配置在application-dev.properties中;
  • prod环境下的配置配置在application-prod.properties中。

在application.properties中指定使用哪一个文件

 

spring.profiles.active = dev

 

也可以启动时指定

 

java -jar myproject.jar --spring.profiles.active = prod

 

 

posted @ 2021-07-10 16:17  你的雷哥  阅读(1063)  评论(0编辑  收藏  举报