• SpringBoot:SpringBoot项目的配置文件放在Jar包外加载


    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:configconfig.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

    文章转载至:https://www.cnblogs.com/matd/p/11130906.html

  • 相关阅读:
    mysql delete 不支持表别名
    查找应用编译时所找的动态库:LD_DEBUG
    ng
    linux 开机启动自动执行某用户的脚步、程序
    理解Linux系统中的load average(图文版)
    char指针与数组(转载)
    堆 栈 静态区
    linux下which、whereis、locate、find 命令的区别
    linux c动态库编译好了,不能用。有些方法报(undefined reference)错误。
    浅谈管理系统操作日志设计(附操作日志类)
  • 原文地址:https://www.cnblogs.com/nhdlb/p/13157573.html
Copyright © 2020-2023  润新知