一般我们会将SpringBoot应用需要的配置内容放在项目工程中,然后通过spring.profiles.active或是通过Maven来实现多环境的支持。但是,当团队逐渐壮大,分工越来越细之后,往往不需要让开发人员知道测试或生产环境的细节,而是希望由每个环境各自的负责人(QA或运维)来集中维护这些信息,那么如果还是以则海洋的方式存储配置内容,对于不同环境配置的修改就不得不去获取工程内容来修改这些配置内容,当应用非常多的时候就变得非常不方便。同时,配置内容对开发人员都可见,这本身也是一种安全隐患。对此,出现了很多将配置内容外部化的框架和工具,Spring Cloud Config就是其中之一。为了能够更合理的重写各个属性的值,SpringBoot使用下面的顺序来加载配置:

1.在命令行中传入的参数;

2.SPRING_APPLICATION_JSON 中的属性。SPRING_APPLICATION_JSON 是以JSON 格式配置在系统环境变量中的内容;

3.Java:comp/env 中的 JNDI 属性;

4.java 的系统属性,可以通过System.getProperties()获得的内容;

5.操作系统的环境变量。

6.通过random.*配置的随机属性;

7.位于当前应用jar包之外,针对不同{profile}环境的配置文件内容,例如 applicaiton-{profile}.properties 或是 yaml 定义的配置文件;

8.位于当前应用jar包之内,针对不同{profile}环境的配置文件内容,例如 applicaiton-{profile}.properites 或是 yaml 定义的配置文件;

9.位于当前应用jar包之外的 application.properties 和yaml配置内容;

10.位于当前应用jar包之内的 application.properties 和yaml配置内容;

11.在@Configration注解修改的类中,通过@PropertySource注解定义的属性;

12.应用默认属性,使用SpringApplication.setDefaultProperties定义的内容;

优先级按照上面的顺序由高到低,数字越小优先级越高。

可以看到,第7项到第9项都是从应用jar包之外读取配置文件,所以,实现外部化配置的原理就是从此切入,为其指定外部配置文件的加载位置来取代jar包之内的配置内容。通过这样的实现,我们的工程在配置中就变得非常干净,只需在本地放置开发需要的配置即可,而不需要其他环境的配置,由其对应环境的负责人去维护即可。

linux上设置jar包加载顺序,SpringBoot配置加载顺序相关推荐

  1. linux服务器设置jar包开机自启动

    一.前言 此方法乃是博主实践操作所得,亲测有效.步骤傻瓜,欢迎使用. 适用的linux版本为CentOS,其他版本不清楚是否可用. 查看linux服务器版本的命令为:lsb_release -a 二. ...

  2. 在Linux上部署jar包(不需要Docker,Tomcat等容器)解决xxx.jar中没有主清单属性

    一.springboot在idea中通过package命令打包 将target下生成的jar包拉到linux下,并执行jar包如下 [root@localhost oa]# java -jar new ...

  3. maven的pom的配置(上传jar包,配置私库,配置第三方库)

    maven仓库配置 仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库 mave ...

  4. Linux 设置 jar 包开机自启动

    概述 初步学习Springboot编写服务,尝试部署到Linux环境下,并进行开机自启动. Linux系统:Centos7.6 Java包:xxx.jar 流程 将 xxx.jar 包(及外部配置文件 ...

  5. linux部署jar项目报错_如何在Linux服务器上部署jar包

    启动程序方法 1.上传jar包到linux服务器下 2.启动jar包 ​前台模式 java –jar XXXX.jar(注意这个命令启动时,断开服务连接后,服务就关闭了) ​后台模式 nohup ja ...

  6. Java:Linux上java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案

    Java:Linux上java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案 参考文章: (1)Java:L ...

  7. Windows 10和Linux脚本启动jar包服务器,并设置开机启动

    Windows 10和Linux脚本启动jar包服务器,并设置开机启动 现在好多Java服务和应用都是用jar启动,jar打包成的里面会直接带有tomcat,所以可以直接启动,但是如何通过脚本启动并且 ...

  8. 【在linux云服务器上传jar包并运行jar】以及Linux运行包的相关命令

    系列文章目录 文章目录 系列文章目录 前言 一.上传jar包 二.云服务器运行jar包相关命令 1.运行jar包 2.关闭jar包 前言 一.idea打jar包教程.点击浏览文章 二.笔者是用第三方X ...

  9. SpringBoot配置加载顺序

    文章目录 前言 一.Spring Boot 配置优先级 二.命令行参数 示例 1 配置文件 示例 2 三.示例分析 前言 Spring Boot 不仅可以通过配置文件进行配置,还可以通过环境变量.命令 ...

  10. 详解本地maven私服nexus安装及上传jar包snapshots快照

    目录 1.nexus简介 2.下载nexus 3.启动nexus 4.访问nexus 5.nexus服务介绍 6.相关配置 7.页面上传Release的jar流程 ​8.上传snapshots快照ja ...

最新文章

  1. 心血来潮学python
  2. ubuntu修改根用户密码
  3. XLS封装成EXE制作全攻略
  4. 浅谈mysql的子查询
  5. python 中的eval与exec
  6. linux rm 某个时间以前,(转)linux的一个find命令配合rm删除某天前的文件
  7. 为什么选择springcloud
  8. 用 Python 将 QQ 好友头像生成祝福语
  9. Docker 容器遇到的乱码问题
  10. AspNetForums 开发过程中的源代码管理
  11. 如何开发一个油猴脚本- 从零开始编写一个油猴脚本
  12. 联邦学习-安全树模型 SecureBoost之终章
  13. 「视频」重磅 | Magic Leap再发Demo,凯文·凯利万字长文揭秘
  14. Java之HashTab基本用法
  15. ArcGIS地理坐标投影坐标转换和显示(浅浅记录一下)
  16. Linux内核中断系统结构——软中断
  17. 前端的Vue相关的项目经验
  18. 【数据挖掘导论】读书笔记 - (1)
  19. 美仲裁协会大力推进网络仲裁 AI或直接助力仲裁裁决
  20. python int()函数详解

热门文章

  1. 7. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
  2. SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等
  3. js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
  4. 关于RabbitMQ Queue Argument的简介
  5. 使用Redis进行简单的数据缓存
  6. springboot 注册服务注册中心(zk)的两种方式
  7. Spring 3.0 基于 Annotation 的依赖注入实现
  8. pdf做成翻页电子书_软网推荐:文档秒变3D翻页电子书
  9. mysql count 条件_MySQL的COUNT语句,竟然都能被面试官虐的这么惨?
  10. 拓端tecdat|Excel中计算票面利率Coupon Rate