18、springboot默认的配置文件及导入额外配置文件

springboot默认的配置文件及导入额外配置文件

★ Spring Boot默认加载的配置文件:

 (1) 类加载路径(resources目录)application.properties|yml  (相当于JAR包内)optional: classpath:/
(2)类加载路径下的/config包(resources/config)。 (相当于JAR包内)optional: classpath:/config/【备注】:上面类加载路径及载路径下config子目录,当应用被打包后,它们就被打包到了JAR包中。
(3)当前路径。(相当于JAR包外)c:\abc\xyz> java -jar test.jar(Spring Boot应用)optional: file:./——执行该java命令所在的目录(c:\abc\xyz)下的application.properties|yml
(4)当前路径下的/config子目录。(相当于JAR包外)optional: file:./config/(5)当前路径下的/config子目录的任意直接子目录,也就是/config/abc/、/config/xyz/等,不能是/config/abc/def/。(相当于JAR包外),实际上就是optional:file:./config/*/ 3个要点:1. 运行Spring Boot应用的当前目录下的配置文件会覆盖JAR包中原有的配置文件——方便部署人员去添加自己的配置文件来覆盖Spring Boot应用中原有的配置。2. 无论是类加载路径中(JAR包),还是当前目录下(JAR包外),config子目录下配置文件总会被自动加载,而且优先级更高。3. 当前目录下,config的直接子目录下(config/abc、config/xyz)的配置文件的优先级是最高的。

★ 设置Spring Boot默认加载的配置文件:

可通过如下系统属性(或环境变量、或命令行参数)来改变配置文件的位置:▲ spring.config.name:改变配置文件的文件名,默认值是application。如果用OS环境变量来设置,则该属性对应于SPRING_CONFIG_NAME环境变量名。它的默认值决定了Spring Boot要加载的配置文件的默认的文件名。▲ spring.config.location:改变配置文件的加载路径。如果用OS环境变量来设置,则该属性对应于SPRING_CONFIG_LOCATION环境变量名。其默认值是5个路径:optional: classpath:/optional: classpath:/config/optional: file:./optional: file:./config/optional: file:./config/*/ 它的默认值决定了Spring Boot默认到哪些路径下搜索配置文件。▲ spring.config.additional-location:添加额外的加载路径,不会覆盖原有的配置文件的加载路径。例如将spring.config.additional-location属性设置为“optional:classpath:/fkjava/,optional:file:./fkit/”,此时Spring Boot将依次从如下路径加载配置文件:
(1)optional:classpath:/(类加载路径的根路径)
(2)optional:classpath:/config/(类加载路径下的/config包)
(3)optional:file:./(当前路径)
(4)optional:file:./config/(当前路径下的/config子目录)
(5)optional:file:./config/*/(当前路径下的/config子目录的任意直接子目录)
(6)optional:classpath:fkjava/
(7)optional:file:./fkit/

★ 导入额外的配置文件:

- PropertiesFactoryBean | YamlPropertiesFactoryBean:将属性文件或YAML文件加载成Properties对象。用法很简单:直接在容器中配置PropertiesFactoryBean | YamlPropertiesFactoryBean工厂Bean即可。- YamlMapFactoryBean:它将YAML文件加载成Map对象。用法很简单:直接在容器中配置YamlMapFactoryBean工厂Bean即可。======上面两种方式只是将配置文件加载成容器中的Properties或Map Bean,并没有添加到配置环境中=====- PropertiesPropertySourceLoader | YamlPropertySourceLoader:将属性文件或YAML文件加载成PropertySource。通常用于在配置环境后处理器中使用,接下来可将PropertySource添加到配置环境中。——这种方式的加载时机非常早!- @PropertySource注解和@TestPropertySource注解只能读取属性文件(propertie文件)告诉Spring Boot要去加载哪些额外的属性文件。【注意】 @PropertySource注解去加载属性文件时,默认所使用的字符集是操作系统相关的。如果你保存属性文件使用了UTF-8字符集,使用该注解时也需要通过encoding属性来指定对应的字符集。- spring.config.import属性来指定要加载哪些额外的配置文件。

代码示例

演示spring.config.import属性来指定要加载哪些额外的配置文件

spring.config.import是在application.yml 配置文件中使用,项目启动的时候就会自动去加载这个application.yml配置文件,然后这个类才能通过@Value注解获取到对应的自定义配置文件中的属性值。
在这里插入图片描述

演示用@PropertySource注解来加载自定义的配置文件。这个注解只能用来加载properties的文件。

这个注解是加载启动类上面的。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/76945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口 对接系统钉钉 钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供PC版,Web版和手机版,有考…

Alchemy Catalyst 2023 crack

Alchemy Catalyst 2023 crack Alchemy CATALYST是一个可视化本地化环境,支持本地化工作流程的各个方面。它帮助组织加快本地化进程,比竞争对手更快地进入新市场,并为他们创造新的收入机会。 创建全球影响力 高质量的产品和服务翻译对跨国组织…

网关gateway的简介和搭建过程

目录 1.什么是网关和网关的应用情景 2.网关是如何演化来的,在微服务中有什么作用? 3.网关的基本功能 4.Spring Cloud gateway的发展史 5.和网关类似的功能组件: 6.为什么微服务当中一定要有网关 7.微服务网关的优点 8.gateway的搭建过程…

C#核心知识回顾——19.插入排序

1.插入排序的基本原理 871542639 两个区域 排序区 未排序区 用一个索引值做分水岭 未排序区元素 与排序区元素比较 插入到合适位置 直到未排序区清空 int[] arr { 8, 6, 7, 2, 9, 4 };//第一步//能取出未排序区…

【MySQL】MySQL 数据库的介绍与操作

目录 1. 登录 MySQL 数据库 2. MySQL 介绍 3. 操作数据库 1、创建数据库 2、删除数据库 3、插入数据 4、查找 5、修改数据库 4. 表的操作 1、创建表 2、查看表 3、修改表 4、删除表 写在最后: 1. 登录 MySQL 数据库 指令: mysql -h 127.…

c51单片机16个按键密码锁源代码(富proteus电路图)

注意了:这个代码你是没法直接运行的,但是如果你看得懂,随便改一改不超过1分钟就可以用 #include "reg51.h" #include "myheader.h" void displayNumber(unsigned char num) {if(num1){P10XFF;P10P11P14P15P160;}else if…

大数据概论

1、大数据概念 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产 大数据主要解决,海量数据的采集、存储和分…

数据结构10 -查找_树表查找

创建二叉搜索树 二叉搜索树 二叉搜索树是有数值的了,二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它…

SQL92 SQL99 语法 Oracle 、SQL Server 、MySQL 多表连接、Natural 、USING

SQL92 VS SQL 99 语法 92语法 内连接 from table1, table2 where table1.col table2.col 外连接 放在 从表 左连接: from table1, table2 where table1.col table2.col() 右连接: from table1, table2 where table…

解决layui框架的radio属性不显示失效问题

废话不多说 直接开干&#xff01; 1.问题描述使用layui时 2.不显示问题 纠结半天 忘记插件要刷新 步骤 3、解决方法就是&#xff1a;使用form.render() 刷新请求的界面 <script type"text/javascript">//刷新界面 所有元素layui.use(form,function(){var form …

SpringBoot 日志文件

一、日志的作用 日志是程序的重要组成部分&#xff0c;想象一下&#xff0c;如果程序报错了&#xff0c;不让你打开控制台看日志&#xff0c;那么你能找到报错的原因吗 答案是否定的&#xff0c;写程序不是买彩票&#xff0c;不能完全靠猜&#xff0c;因此日志对于我们来说&a…

MySQL语法2

DQL语句介绍 DQL是数据查询语言&#xff0c;用来查询数据库中表的记录 DQL-基本查询语句 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVIMG 分组后条件列表 ORDER BY 排列字段列表 LIMIT 分页参数 讲解过程&#xff1a;基本查询、条件查询…

【C语言进阶篇】关于指针的八个经典笔试题(图文详解)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言&#x1f4ac; 指针笔试题&#x1f4ad; 笔试题 1&#xff1a;✅ 代码解析⁉️ 检验结果&…

Delphi Architect Crack,部署支持Swagger

Delphi Architect Crack,部署支持Swagger 单一代码库-用更少的编码工作为所有主要平台创建应用程序。写一次&#xff0c;到处编译。 Windows-使用最新的用户界面控件、WinRT API和HighDPI相关功能&#xff0c;使Windows的VCL应用程序现代化。 远程桌面-使用改进的VCL和IDE远程桌…

【ONE·Linux || 基础IO(二)】

总言 文件系统与动静态库相关介绍。 文章目录 总言2、文件系统2.1、背景知识2.2、磁盘管理2.2.1、磁盘文件系统图2.2.2、inode与文件名 2.3、软硬链接 3、动静态库3.1、站在编写库的人的角度&#xff1a;如何写一个库&#xff1f;3.1.1、静态库制作3.1.3、动态库制作 3.2、站在…

第一百二十二天学习记录:C++提高:STL-vector容器(上)(黑马教学视频)

vector基本概念 功能&#xff1a; vector数据结构和数组非常相似&#xff0c;也称为单端数组 vector与普通数组区别&#xff1a; 不同之处在于数组是静态空间&#xff0c;而vector可以动态扩展 动态扩展&#xff1a; 并不是在原空间之后续接新的空间&#xff0c;而是找更大的内…

【Spring Cloud 五】OpenFeign服务调用

这里写目录标题 系列文章目录背景一、OpenFeign是什么Feign是什么Feign的局限性 OpenFeign是什么 二、为什么要有OpenFeign三、如何使用OpenFeign服务提供者order-servicepom文件yml配置文件启动类实体ParamController 服务消费者user-servicepom文件yml配置文件启动类接口类Us…

vue3—SCSS的安装、配置与使用

SCSS 安装 使用npm安装scss&#xff1a; npm install sass sass-loader --save-dev 配置 配置到全局 &#x1f31f;附赠代码&#x1f31f; css: {preprocessorOptions: {scss: {additionalData:import "./src/Function/Easy_I_Function/Echarts/ToSeeEcharts/utill.…

嵌入式软件工程师和嵌入式硬件工程师的区别

嵌入式软件工程师和嵌入式硬件工程师的区别&#xff1a; 什么是嵌入式工程师&#xff1f;在我们生活中离不开电子产品&#xff0c;大件的比如冰箱、空调、洗衣机&#xff0c;到小件的比如音箱、剃须刀等。要设计这些电子产品除了外观设计之外还有一些核心的部件就是电路板&…

使用css和js给按钮添加微交互的几种方式

使用css和js给按钮添加微交互的几种方式 在现实世界中&#xff0c;当我们轻弹或按下某些东西时&#xff0c;它们会发出咔嗒声&#xff0c;例如电灯开关。有些东西会亮起或发出蜂鸣声&#xff0c;这些响应都是“微交互”&#xff0c;让我们知道我们何时成功完成了某件事。在本文…