昌乐网站制作,怎么做网站优化排名到前面,菏泽 做网站 多少钱,做音乐头像网站我们如果要对普通程序的jar包更改配置#xff0c;那么我们需要对jar包解压#xff0c;并在其中的配置文件中更改配置参数#xff0c;然后再打包并重新运行。可以看到过程比较繁琐#xff0c;SpringBoot也注意到了这个问题#xff0c;其可以通过外部配置文件更新配置。
我…我们如果要对普通程序的jar包更改配置那么我们需要对jar包解压并在其中的配置文件中更改配置参数然后再打包并重新运行。可以看到过程比较繁琐SpringBoot也注意到了这个问题其可以通过外部配置文件更新配置。
我们只需要给jar应用所在的文件夹放一个application.properties最新配置文件重启项目就能自动应用最新配置。下面就进行详细介绍。
1. 配置优先级
Spring Boot 允许将配置外部化以便可以在不同的环境中使用相同的应用程序代码。我们可以使用各种外部配置源包括Java Properties文件、YAML文件、环境变量和命令行参数。Value可以获取值也可以用ConfigurationProperties将所有属性绑定到java object中。
以下是 SpringBoot 属性源加载顺序。优先级由低到高高优先级配置覆盖低优先级
默认属性通过SpringApplication.setDefaultProperties指定的PropertySource指定加载的配置需要写在Configuration类上才可生效配置文件application.properties/yml等RandomValuePropertySource支持的random.*配置如Value(“${random.int}”)OS 环境变量Java 系统属性System.getProperties()JNDI 属性来自java:comp/envServletContext 初始化参数ServletConfig 初始化参数SPRING_APPLICATION_JSON属性内置在环境变量或系统属性中的 JSON命令行参数测试属性。(SpringBootTest进行测试时指定的属性)测试类TestPropertySource注解Devtools 设置的全局属性。($HOME/.config/spring-boot)
结论配置可以写到很多位置常见的优先级顺序
命令行 配置文件 springapplication配置
配置文件也有很多种具体优先级如下(后面覆盖前面)
jar 包内的application.properties/ymljar 包内的application-{profile}.properties/ymljar 包外的application.properties/ymljar 包外的application-{profile}.properties/yml
建议用一种格式的配置文件。如果.properties和.yml同时存在,则.properties优先
结论包外 包内 同级情况profile配置 application配置 例如我们当前有以下配置信息
包内 application.properties server.port8000包内 application-dev.properties server.port9000包外 application.properties server.port8001包外 application-dev.properties server.port9001
以上配置优先级为命令行 9001 8001 9000 8000
2. 外部配置
SpringBoot 应用启动时会自动寻找application.properties和application.yaml位置进行加载。顺序如下后面覆盖前面
类路径: 内部 类根路径类下/config包 当前路径项目所在的位置 当前路径当前下/config子目录/config目录的直接子目录
最终效果优先级由高到低前面覆盖后面
命令行 包外config直接子目录 包外config目录 包外根目录 包内目录同级比较 profile配置 默认配置properties配置 yaml配置 从图上可以更直观的看到越向外的配置文件优先级越高