Spring: 配置文件 发布时间:2026/10/22 12:44:16 阅读:1,248 作者:尧图研究院 1.配置⽂件作⽤计算机上有数以千计的配置⽂件, 我们使⽤的绝⼤多数软件, ⽐如浏览器, 微信, Idea, 甚⾄电脑, ⼿机, 都离不开配置⽂件. 我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上, ⽐如C:\Users, C:\Windows⽂件夹, 以及各种 *.config, *.xml ⽂件配置⽂件主要是为了解决硬编码带来的问题, 把可能会发⽣改变的信息, 放在⼀个集中的地⽅, 当我们启动某个程序时, 应⽤程序从配置⽂件中读取数据, 并加载运⾏.使⽤配置⽂件, 可以使程序完成⽤⼾和应⽤程序的交互, 或者应⽤程序与其他应⽤程序的交互硬编码是将数据直接嵌⼊到程序或其他可执⾏对象的源代码中, 也就是我们常说的"代码写死".2.SpringBoot配置⽂件SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的. 很多项⽬或者框架的配置信息也放在配置⽂件中, ⽐如:•项⽬的启动端⼝•数据库的连接信息(包含⽤⼾名和密码的设置)•第三⽅系统的调⽤密钥等信息•⽤于发现和定位问题的普通⽇志和异常⽇志等.3.配置⽂件快速⼊⼿我们在前⾯讲了Tocmat 默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080但是如果8080端⼝号已经被其他进程使⽤了呢? 我们可以通过配置⽂件来修改服务的端⼝号SpringBoot 在创建项⽬时, 就已经帮我们创建了配置⽂件修改application.properties⽂件4.配置⽂件的格式Spring Boot 配置⽂件有以下三种:•application.properties•application.yml•application.yamlyml 为yaml的简写, 实际开发中出现频率最⾼.类似商品的包装⼀样, 有新⽼两款包装. properties 类型的配置⽂件就属于⽼款包装,也是创建Spring Boot 项⽬时默认的⽂件格式(主要是因为仓库⾥还有库存),⽽ yml 属于新版包装,如果⽤⼾了解情况直接指定要新款包装,那么就直接发给他特殊说明1.理论上讲.properties和.yml可以并存在于⼀个项⽬中,当.properties和.yml并存时,两个配置都会加载. 如果配置⽂件内容有冲突, 则以 .properties为主, 也就是.properties 优先级更⾼.2.虽然理论上来讲.properties可以和.yml共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率).5.properties 配置⽂件说明1.properties 基本语法properties 是以键值的形式配置的,key 和 value 之间是以"="连接的,如:2.读取配置⽂件如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤@Value注解来实现。@Value注解使⽤"${}"的格式读取,如下代码所⽰:3.properties 缺点分析properties 配置是以 key-value 的形式配置的,properties 配置⽂件中会有很多的冗余的信息想要解决这个问题,就可以使⽤ yml 配置⽂件的格式化了.6.yml 配置⽂件说明1.yml 基本语法yml 是树形结构的配置⽂件,它的基础语法是"key: value".key 和 value 之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略2.yml 配置读取yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可注意事项:value 值加单双引号字符串默认不⽤加上单引号或者双引号,如果加英⽂的单双引号可以表⽰特殊的含义:•字符串默认不⽤加上单引号或者双引号。•单引号会转义特殊字符,使其失去特殊功能, 始终是⼀个普通的字符串.•双引号不会转义字符串⾥⾯的特殊字符, 特殊字符会表⽰本⾝的含义.3.配置对象我们还可以在 yml 中配置对象,如下配置:这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解@ConfigurationProperties 来读取4.yml优缺点优点:1.可读性⾼,写法简单, 易于理解2.⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态.3.⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤缺点:1.不适合写复杂的配置⽂件2.对格式有较强的要求(⼀个空格可能会引起⼀场⾎案) SEO优化 网站运营 关键词排名 推广干货 返回列表 RELATED READING 延伸阅读 更多一线实战笔记与深度复盘,助您持续精进 【机械制图与CAD实战(十六)】组合体的组合形式 1.1、组合体的组合形式 1、组合体组合体:由两个或两个以上的基本形体组合构成的物体分解示意图:2、组合体的组合形式组合体的组合形式有:叠加方式、截切方式和综合方式。1)叠加方式:是指用若干个基本体类似于搭积木的方… 2026/10/22 12:42:16 阅读全文 → ContextMenuManager备份与恢复指南:右键菜单改错了?3步一键还原 【免费下载链接】ContextMenuManager 🖱️ 一个管理 Windows 右键上下文菜单的程序(支持Windows 7 - 11)A program to manage the Windows right-click context menu with support of Windows 7 - 11 项目地址: https://gitcode.c… 2026/10/22 12:42:16 阅读全文 → BSP 调试:前言 正文 更完了合集《BSP 调试从 0 到 1》,有不少读者私信我希望可以出些 RK平台的BSP调试内容——这不就来了嘛! 简单介绍下,接下来要更的这个合集,是我当初调试 RK3588 平台时的原始笔记——只保留了那些踩过坑的问题接口ÿ… 2026/10/22 12:42:16 阅读全文 → 高频方波注入:无感FOC零低速位置观测的核心技术 做过FOC无感控制的工程师,应该都有过这种矛盾体验:电机转起来容易,停下来也容易,真正让人头疼的是让它在零速和极低速下死死地盯住转子位置。中高速段有反电动势帮忙,滑模观测器、龙贝格观测器都能干得不错;… 2026/10/22 13:22:33 阅读全文 → Git避坑指南:10道题考透reset、rebase与reflog底层原理 日常开发里,真正让你在 Git 上翻车的,往往不是某个冷门命令不会用,而是那些你天天在敲、自信满满的基础操作,在边界情况下做出的错误假设。我见过不少写了三五年业务的同事,merge 和 rebase 天天用,但被问到… 2026/10/22 13:22:33 阅读全文 → 微服务中gRPC错误处理完整指南:状态码、拦截器与跨服务传播 如果你维护过微服务调用链,大概率见过这种日志:订单服务调用支付服务失败,错误信息是 rpc error: code Unknown desc i/o timeout 。第一反应是网络问题,可当你找到支付服务的值班同学,对方却一脸无辜地说“我们这… 2026/10/22 13:22:33 阅读全文 → 原生Table一行双数据:补位、合并与打印适配实践 做后台页面的时候,我接到过不少类似的要求:“这个地方用原生Table写一行,要保证两条数据。”第一次听到这话,我以为是简单的“一行放两个td”,真上手才发现,需求里的“两条数据”通常不是两个单元格&#x… 2026/10/22 13:22:33 阅读全文 → 虚拟电厂入门:从概念到智能电网落地的技术框架解析 简介:这是一份面向电气工程、智能电网与新能源方向学习者及从业者的虚拟电厂专题演示文稿,围绕虚拟电厂的概念内涵、国内外研究动态及其在智能电网中的技术应用展开,适合用于课程汇报、技术调研或项目方案参考。压缩包内共1个pptx文件&#x… 2026/10/22 13:22:33 阅读全文 → NetLogo+MATLAB双引擎建模:实现电网人-策-网耦合仿真 简介:本资源是一份面向电气工程、智能电网与多智能体系统方向本科生的毕业论文,聚焦源网荷互动场景下的电力系统功率平衡控制问题,提出并实现了基于NETLOGO与MATLAB协同的电网多智能体建模、仿真与控制方案。论文完整覆盖绪论、电力系统与多智… 2026/10/22 13:20:31 阅读全文 → 高频方波注入:无感FOC零低速位置观测的核心技术 做过FOC无感控制的工程师,应该都有过这种矛盾体验:电机转起来容易,停下来也容易,真正让人头疼的是让它在零速和极低速下死死地盯住转子位置。中高速段有反电动势帮忙,滑模观测器、龙贝格观测器都能干得不错;… 2026/10/22 13:22:33 阅读全文 → Git避坑指南:10道题考透reset、rebase与reflog底层原理 日常开发里,真正让你在 Git 上翻车的,往往不是某个冷门命令不会用,而是那些你天天在敲、自信满满的基础操作,在边界情况下做出的错误假设。我见过不少写了三五年业务的同事,merge 和 rebase 天天用,但被问到… 2026/10/22 13:22:33 阅读全文 → 微服务中gRPC错误处理完整指南:状态码、拦截器与跨服务传播 如果你维护过微服务调用链,大概率见过这种日志:订单服务调用支付服务失败,错误信息是 rpc error: code Unknown desc i/o timeout 。第一反应是网络问题,可当你找到支付服务的值班同学,对方却一脸无辜地说“我们这… 2026/10/22 13:22:33 阅读全文 → 原生Table一行双数据:补位、合并与打印适配实践 做后台页面的时候,我接到过不少类似的要求:“这个地方用原生Table写一行,要保证两条数据。”第一次听到这话,我以为是简单的“一行放两个td”,真上手才发现,需求里的“两条数据”通常不是两个单元格&#x… 2026/10/22 13:22:33 阅读全文 → 虚拟电厂入门:从概念到智能电网落地的技术框架解析 简介:这是一份面向电气工程、智能电网与新能源方向学习者及从业者的虚拟电厂专题演示文稿,围绕虚拟电厂的概念内涵、国内外研究动态及其在智能电网中的技术应用展开,适合用于课程汇报、技术调研或项目方案参考。压缩包内共1个pptx文件&#x… 2026/10/22 13:22:33 阅读全文 → NetLogo+MATLAB双引擎建模:实现电网人-策-网耦合仿真 简介:本资源是一份面向电气工程、智能电网与多智能体系统方向本科生的毕业论文,聚焦源网荷互动场景下的电力系统功率平衡控制问题,提出并实现了基于NETLOGO与MATLAB协同的电网多智能体建模、仿真与控制方案。论文完整覆盖绪论、电力系统与多智… 2026/10/22 13:20:31 阅读全文 → 基于GMM的语音识别系统原理与MATLAB实现详解 说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别… 2026/10/22 0:19:55 阅读全文 → 数字图像处理入门:反白、灰度化、调色板修改与导出txt实践 数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一… 2026/10/22 0:19:55 阅读全文 → 机器人大脑技术盘点:具身智能的感知、决策与数据闭环 如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时… 2026/10/22 2:20:08 阅读全文 → 基于GMM的语音识别系统原理与MATLAB实现详解 说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别… 2026/10/22 0:19:55 阅读全文 → 数字图像处理入门:反白、灰度化、调色板修改与导出txt实践 数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一… 2026/10/22 0:19:55 阅读全文 → 机器人大脑技术盘点:具身智能的感知、决策与数据闭环 如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时… 2026/10/22 2:20:08 阅读全文 → 电商智能运营体系从0到1:架构设计、落地步骤与避坑指南 前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些… 2026/10/22 0:00:32 阅读全文 → 压缩空气储能与热网热惯性联合优化调度:热电联产系统建模与求解 前几年做模拟项目X时,我遇到一个很典型的调度困境:系统里有一台热电联产机组和一片集中供热管网,冬季夜间电负荷低、热负荷却很高,机组被“以热定电”的约束绑得死死的,电力调峰完全腾不出手,只能眼睁睁看着… 2026/10/22 0:00:32 阅读全文 → 若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定 最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro… 2026/10/22 0:00:32 阅读全文 → 我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … 2026/10/22 12:21:12 阅读全文 → Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … 2026/10/21 16:19:04 阅读全文 → 2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … 2026/10/21 19:19:23 阅读全文 →
1.配置⽂件作⽤计算机上有数以千计的配置⽂件, 我们使⽤的绝⼤多数软件, ⽐如浏览器, 微信, Idea, 甚⾄电脑, ⼿机, 都离不开配置⽂件. 我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上, ⽐如C:\Users, C:\Windows⽂件夹, 以及各种 *.config, *.xml ⽂件配置⽂件主要是为了解决硬编码带来的问题, 把可能会发⽣改变的信息, 放在⼀个集中的地⽅, 当我们启动某个程序时, 应⽤程序从配置⽂件中读取数据, 并加载运⾏.使⽤配置⽂件, 可以使程序完成⽤⼾和应⽤程序的交互, 或者应⽤程序与其他应⽤程序的交互硬编码是将数据直接嵌⼊到程序或其他可执⾏对象的源代码中, 也就是我们常说的"代码写死".2.SpringBoot配置⽂件SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的. 很多项⽬或者框架的配置信息也放在配置⽂件中, ⽐如:•项⽬的启动端⼝•数据库的连接信息(包含⽤⼾名和密码的设置)•第三⽅系统的调⽤密钥等信息•⽤于发现和定位问题的普通⽇志和异常⽇志等.3.配置⽂件快速⼊⼿我们在前⾯讲了Tocmat 默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080但是如果8080端⼝号已经被其他进程使⽤了呢? 我们可以通过配置⽂件来修改服务的端⼝号SpringBoot 在创建项⽬时, 就已经帮我们创建了配置⽂件修改application.properties⽂件4.配置⽂件的格式Spring Boot 配置⽂件有以下三种:•application.properties•application.yml•application.yamlyml 为yaml的简写, 实际开发中出现频率最⾼.类似商品的包装⼀样, 有新⽼两款包装. properties 类型的配置⽂件就属于⽼款包装,也是创建Spring Boot 项⽬时默认的⽂件格式(主要是因为仓库⾥还有库存),⽽ yml 属于新版包装,如果⽤⼾了解情况直接指定要新款包装,那么就直接发给他特殊说明1.理论上讲.properties和.yml可以并存在于⼀个项⽬中,当.properties和.yml并存时,两个配置都会加载. 如果配置⽂件内容有冲突, 则以 .properties为主, 也就是.properties 优先级更⾼.2.虽然理论上来讲.properties可以和.yml共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率).5.properties 配置⽂件说明1.properties 基本语法properties 是以键值的形式配置的,key 和 value 之间是以"="连接的,如:2.读取配置⽂件如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤@Value注解来实现。@Value注解使⽤"${}"的格式读取,如下代码所⽰:3.properties 缺点分析properties 配置是以 key-value 的形式配置的,properties 配置⽂件中会有很多的冗余的信息想要解决这个问题,就可以使⽤ yml 配置⽂件的格式化了.6.yml 配置⽂件说明1.yml 基本语法yml 是树形结构的配置⽂件,它的基础语法是"key: value".key 和 value 之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略2.yml 配置读取yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可注意事项:value 值加单双引号字符串默认不⽤加上单引号或者双引号,如果加英⽂的单双引号可以表⽰特殊的含义:•字符串默认不⽤加上单引号或者双引号。•单引号会转义特殊字符,使其失去特殊功能, 始终是⼀个普通的字符串.•双引号不会转义字符串⾥⾯的特殊字符, 特殊字符会表⽰本⾝的含义.3.配置对象我们还可以在 yml 中配置对象,如下配置:这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解@ConfigurationProperties 来读取4.yml优缺点优点:1.可读性⾼,写法简单, 易于理解2.⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态.3.⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤缺点:1.不适合写复杂的配置⽂件2.对格式有较强的要求(⼀个空格可能会引起⼀场⾎案)