SpringApplicationapplication.properties以下位置的文件加载属性并将它们添加到Spring Environment

  1. 一个/config当前目录下的子目录。
  2. 当前目录
  3. 一个类路径/config
  4. 类路径根

该列表按优先顺序排列(在列表中较高的位置定义的属性将覆盖在较低位置定义的属性)。

 

如果您不喜欢application.properties作为配置文件名,则可以通过指定spring.config.name环境属性来切换到另一个文件名。您还可以使用spring.config.location 环境属性(逗号分隔的目录位置或文件路径列表)引用显式位置。以下示例显示如何指定不同的文件名称:

$ java -jar myproject.jar --spring.config.name = myproject

以下示例显示如何指定两个位置:

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

spring.config.name并且spring.config.location很早就用来确定哪些文件必须加载,因此必须将其定义为环境属性(通常是OS环境变量,系统属性或命令行参数)。

如果spring.config.location包含目录(而不是文件),它们应该结束/(并且在运行时加入从spring.config.name 加载之前生成的名称,包括配置文件特定的文件名)。指定的文件 spring.config.location按原样使用,不支持特定于配置文件的变体,并被特定于配置文件的特性覆盖。

配置位置按相反顺序搜索。默认情况下,配置的位置是 classpath:/,classpath:/config/,file:./,file:./config/。结果搜索顺序如下:

  1. file:./config/
  2. file:./
  3. classpath:/config/
  4. classpath:/

当使用自定义配置位置进行配置时spring.config.location,它们会替换默认位置。例如,如果spring.config.location使用该值配置classpath:/custom-config/,file:./custom-config/,则搜索顺序变为以下内容:

  1. file:./custom-config/
  2. classpath:custom-config/

或者,使用自定义配置位置进行配置时spring.config.addition-location,除了默认位置以外,还会使用 它们。在默认位置之前搜索其他位置。例如,如果classpath:/custom-config/,file:./custom-config/配置了其他位置,则搜索顺序如下所示:

  1. file:./custom-config/
  2. classpath:custom-config/
  3. file:./config/
  4. file:./
  5. classpath:/config/
  6. classpath:/

这种搜索顺序使您可以在一个配置文件中指定默认值,然后在另一个配置文件中有选择地覆盖这些值 您可以在其中一个默认位置为您的应用程序application.properties(或您选择的其他基本名称 spring.config.name)提供默认值。这些默认值可以在运行时被置于其中一个自定义位置的不同文件覆盖。

如果使用环境变量而非系统属性,则大多数操作系统不允许使用句点分隔的键名称,但可以使用下划线(例如,SPRING_CONFIG_NAME而不是spring.config.name)。

如果您的应用程序在容器中运行,那么可以使用JNDI属性(in java:comp/env)或servlet上下文初始化参数,而不是使用环境变量或系统属性。

springboot 应用程序的文件检索描述的更多相关文章

  1. Verilog HDL的程序结构及其描述

    这篇博文是写给要入门Verilog HDL及其初学者的,也算是我对Verilog  HDL学习的一个总结,主要是Verilog HDL的程序结构及其描述,如果有错,欢迎评论指出. 一.Verilog ...

  2. 从安装linux(centos7.6)系统到部署springboot java程序到k8s(大纲)

    本文说明从安装linux系统开始,一直到在k8s运行springboot程序全过程 本文假设在自己电脑操作,因此linux系统使用vmware虚拟机,linux发行版使用centos 7.6.1810 ...

  3. 程序员如何描述清楚线上bug

    案例 一个管理后台的bug,把操作记录中的操作员姓名,写成了该操作员的id.原因是修改了一个返回操作人姓名的函数,返回了操作人的id.但是还有其他地方也用这个函数,导致其他地方把姓名字段填写成了操作员 ...

  4. idea中springboot项目程序入口右键不显示run as的原因

    今天在idea中导入了springboot的项目,但是在程序的入口处右键单击没有出现run  as 的程序启动方式,主要原因在于idea中右面的maven projects中没加载项目,需要点击“+“ ...

  5. Springboot入门程序

    springboot简化之前的很多xml文件,不需要大量配置xml文件,没有很多xml文件是多么的愉快 下面进入正题,演示简单的入门程序,虽然简单,但足以振奋初学者们 我新建的工程名叫hello,大家 ...

  6. sloop公共程序之总体描述

    1:功能需求 开发一个公共库文件sloop.c,实现三个常用功能以供其它模块调用.三个功能如下: 功能一:实现一般的信号监听,调用模块只需传入要监听的信号和相应的回调函数就可以在信号到时调用回调函数处 ...

  7. springboot 控制台程序读取配置文件(原创)

    首先新建一个springboot项目,此处省略. 1.新建一个application.properties person.name=kevin person.age=6 person.sex=male ...

  8. 把java(springboot)程序打包docker镜像

    前言:要在docker运行java(jar包)程序,就要把程序打包成docker镜像(以下简称镜像),可以先理解为镜像就是jar包 打包需要程序代码,java本身的打包环境(包括jdk和maven), ...

  9. SpringBoot 应用程序启动过程探秘

    概述 说到接触 SpringBoot 伊始,给我第一映像最深的是有两个关键元素: 对照上面的典型代码,这个两个元素分别是: @SpringBootApplication SpringApplicati ...

随机推荐

  1. 利用正则表达式模拟计算器进行字符串的计算实现eval()内置函数功能

    代码感觉有点绕,刚开始学习python,相关知识点还没全部学习到,还请各位大神多多指教 import re # 定义乘法 def mul(string): mul1 = re.search('-?\d ...

  2. word中迅速将表格一分为二 拆分表格快捷键ctrl+shift+enter 重复上一个命令快捷键f4

    这里说的是将一个表格拆分为两个表格 选择要拆分的行,快捷键ctrl+shift+enter,就拆分为两个表格了,是不是很快! 在多个表格需要拆分的时候,做一次这样的操作,然后不停的移动.F4,就可以了 ...

  3. aspnet core in docker

    1 创建一个文件夹(app), 将项目发布后的文件放入该文件夹中 并且创建Dockerfile文件 2 打开Dockerfile文件,编辑一下内容 #基于 `microsoft/dotnet:-cor ...

  4. bfs(最短路径)

    http://poj.org/problem?id=3278 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

  5. 2015 GDUT校赛

    周末打了个GDUT的校赛,也是作为SCAU的一场个人排位. 比赛中竟然卡了个特判,1个半钟就切了5条了,然后一直卡. 还有其他两条可以做的题也没法做了,性格太执着对ACM来说也是错呀. 讲回正题 . ...

  6. Yii2 错误 'Headers already sent.'

    错误日志如下: __source__: __topic__: web category: yii\web\HeadersAlreadySentException ip: level: message: ...

  7. ArrayList与List<T>的区别

    ArrayList alist = new ArrayList(); //ArrayList(object value),所以ArrayList可以存储任何类型,如果存储值类型的话会进行装箱操作,在操 ...

  8. Android单位转换 (px、dp、sp之间的转换工具类)

    在Android开发中,涉及到屏幕视频问题的时候,px.dp.sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用. package com.zw.express.tool; import ...

  9. httpclient请求接口,上传文件附加参数(.net core)

    /// <summary> /// 上传文件 - 武汉站点 /// </summary> [HttpPost] public IActionResult UploadWH(Re ...

  10. JS面向对象——工厂模型

    工厂模型抽象了创建具体对象的过程,以下示例代码说明工厂类型: <!DOCTYPE html> <html> <head> <title>工厂模型< ...