当前位置: 首页 > news >正文

[JAVAee]SpringBoot配置文件

配置文件的介绍

配置文件当中记录了许多重要的配置信息,例如:

  • 数据库的连接信息(用户的账户与密码)
  • 项目的启动端口
  • 第三方系统的调用密匙
  • 用于记录问题产生的日志

在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用.

配置文件中的属性也起到了类似全局变量的作用. 

对于一个项目,可以准备多种配置文件方便自由调用来应对不同的情况.

放置在resources目录下 

配置文件的格式

Spring Boot的配置文件的格式主要有两种:

  • .properties(spring boot默认)
  • .yml

properties与yml都是配置文件,类似于同一件实物来说,properties是旧版的而yml是新版的.

properties与yml的优先级

properties与yml可以出现在同一个项目当中,还是建议在一个项目下使用同一种类型的配置文件.

但properties的优先级会更高,项目先加载properties中的配置,在这之后才去加载yml的.

 下面来示范一下.

①在同一个项目中分别放置properties与yml的配置文件

②分别在两种配置文件中配置同一属性的信息

yml配置的端口号为:666

properties配置的端口号为:123 

③在类中调用并打印查看结果

观察得到,打印的端口号为123,即是properties配置文件中的信息. 

注意,虽然properties配置文件在SpringBoot的优先级更高.但并不表示不会载入yml的信息噢,只是在同一个属性上优先使用properties中的信息. 

properties配置文件的说明 

properties是配置文件的早期文件类型,是spring boot的默认配置文件类型

基本语法

在properties是以键值对的方式来赋值,其中key与value是以"="来连接.

server.port = 123
#使用"#"在配置文件中进行注释

读取配置文件信息

在项目中想实现配置文件中内容的读取,可以使用@Value注解来实现

其中@Value注解的格式为${}

@Value("${server.port}")

缺点分析

当在配置相近的内容时,会额外的产生冗余的信息.

yml配置文件的说明

yml是yaml的缩写,全称为:Yet Another Markup Language(另一种标记语言).

对于properties来说,yml支持了更多的编程语言.还支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件.

基本语法 

yml的语法与JSON差不多,但yml使用":" + "(空格)"的形式组合连接key与value,其中的空格不要省略噢.

server.port: 666

对比: 

使用

①与properties对比

左边为yml,右边为properties.

可以观察到yml中的书写更为简便一些. 

②配置数据类型

yml还可以配置数据类型以及null(properties不可配置数据类型噢~)

 ③配置对象

写法一:

写法二:

配置文件中对象的读取

 对于yml中的对象就不能使用@Value来读取了

而是使用@ConfigurationProperties.

@ConfigurationProperties(prefix = "student1")//student1为yml中对象名称
@Component
public class Student {private int age;private String name;private String id;//其中getter与setter方法不能省略public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}
}

读取 

yml的基本读取与properties的@Value注解读取一直,特殊的对象读取也说明,此处不再赘述.

相关文章:

[JAVAee]SpringBoot配置文件

配置文件的介绍 配置文件当中记录了许多重要的配置信息,例如: 数据库的连接信息(用户的账户与密码)项目的启动端口第三方系统的调用密匙用于记录问题产生的日志 在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用. 配置文件中的属性也起到了类似全局变量的…...

复制远程连接到Linux使用VIM打开的内容到Windows

我们经常是使用SSH工具远程连接到Linux服务器上进行工作,有时候需要将Linux下使用VIM打开的文件内容复制到Windows上来,默认情况下,可能会复制不了,因为VIM默认情况下是使用的set mousea的设置,它会让鼠标选中的时候进…...

左神算法之中级提升班(9)

目录 【案例1】 【题目描述】 【思路解析】 【代码实现】 【案例2】 【题目描述】 【思路解析 平凡解技巧 从业务中分析终止条件 重点】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【案例4】 【题目描述】 【思路解析】 【代码实现】 【动态规划代码】…...

SmartNews 基于 Flink 的 Iceberg 实时数据湖实践

摘要:本文整理自 SmartNews 数据平台架构师 Apache Iceberg Contributor 戢清雨,在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为五个部分: SmartNews 数据湖介绍基于 Icebergv1 格式的数据湖实践基于 Flink 实时更新的数据…...

websocket请求通过IteratorAggregate实现流式输出

对接国内讯飞星火模型,官方文档接口采用的是websocket跟国外chatgpt有些差异。 虽然官网给出一个简单demo通过while(true),websocket的receive()可以实现逐条接受并输出给前端,但是通用和灵活度不高。不能兼容现有项目框架的流式输出。故模仿…...

《C和指针》笔记28:可变参数和stdarg宏

可变参数列表可以通过宏来实现,这些宏定义于stdarg.h头文件,它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏——va_start、va_arg和va_end 。我们可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值…...

Matlab论文插图绘制模板第114期—带图形标记的图

之前的文章中,分享了Matlab带线标记的图: 带阴影标记的图: 带箭头标记的图: 进一步,分享一下带图形标记的图,先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中&…...

Python:用于有效对象管理的单例模式

1. 写在前面 在本文中,我们将介绍一种常用的软件设计模式 —— 单例模式。 通过示例,演示单例创建,并确保该实例在整个应用程序生命周期中保持一致。同时探讨它在 Python 中的目的、益处和实际应用。 关键点: 1、单例模式只有…...

【TCP】滑动窗口、流量控制 以及拥塞控制

滑动窗口、流量控制 以及拥塞控制 1. 滑动窗口(效率机制)2. 流量控制(安全机制)3. 拥塞控制(安全机制) 1. 滑动窗口(效率机制) TCP 使用 确认应答 策略,对每一个发送的数…...

Xilinx FPGA管脚约束语法规则(UCF和XDC文件)

文章目录 1. ISE环境(UCF文件)2. Vivado环境(XDC文件) 本文介绍ISE和Vivado管脚约束的语句使用,仅仅是管脚和电平状态指定,不包括时钟约束等其他语法。 ISE使用UCF文件格式,Vivado使用XDC文件&…...

服务网格和CI/CD集成:讨论服务网格在持续集成和持续交付中的应用。

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

代码随想录训练营第56天|583.两个字符串的删除操作,72.编辑距离

代码随想录训练营第56天|583.两个字符串的删除操作,72.编辑距离 583.两个字符串的删除操作文章思路代码 72.编辑距离文章思路代码 总结 583.两个字符串的删除操作 文章 代码随想录|0583.两个字符串的删除操作 思路 如果不按照编辑距离考虑的话,只需要…...

【JDK 8-Lambda】3.1 Java高级核心玩转 JDK8 Lambda 表达式

一、 什么是函数式编程 ? 二、 什么是lambda表达式? 1. 先看两个示例 A.【创建线程】 B.【数组排序-降序】 2. lambda表达式特性 A. 使用场景(前提): B. 语法 (params) -> expression C. 参数列表 D. 方法体 F. 好处 一、 什么是函数式编…...

【C#】XML的基础知识以及读取XML文件

最近在学读取文件 目录 介绍特点结构XML的语法规则XML 命名规则 C#操作XML新建读取第一种第二种第三种 读取属性 介绍 XML (可扩展标记语言,eXtensible Markup Language) 是一种标记语言,它被设计用来传输和存储数据。 特点 可扩展性:由于…...

Immutable.js简介

引子 看一段大家熟悉的代码 const state {str: wwming,obj: {y: 1},arr: [1, 2, 3] } const newState stateconsole.log(newState state) // truenewState和state是相等的 原因: 由于js的对象和数组都是引用类型。所以newState的state实际上是指向于同一块内存…...

C语言进阶教程(位操作和进制数的表示)

文章目录 前言一、左移和右移二、清除对应的位为0和设置对应的位为11.设置对应的位为12.清除对应的位为0 三、进制数的表示四、& ^ | ~总结 前言 本篇文章给大家讲解一下C语言中的位操作,在嵌入式中位操作是经常需要使用的,那么下面就让我们来学习一…...

Loguru:功能强大、简单易用的Python日志库

文章目录 Loguru:Python的日志库安装 Loguru基本用法配置 Loguruadd() 语句remove() 语句设置日志文件保留日志的等级设置控制台日志显示等级Loguru:Python的日志库 Loguru 是一个功能强大、简单易用的日志库,可以让 Python 的日志记录变得更加轻松。它提供了丰富的功能和配…...

idea之maven的安装与配置

我们到maven的官网里下载maven,地址:https://maven.apache.org/download.cgi下载完成后解压即可配置环境变量 此电脑–>右键–>属性–>高级系统设置–>环境变量–>系统变量(S)–>新建一个系统变量 变量名&…...

【最新面试问题记录持续更新,java,kotlin,android,flutter】

最近找工作,复习了下java相关的知识。发现已经对很多概念模糊了。记录一下。部分是往年面试题重新整理,部分是自己面试遇到的问题。持续更新中~ 目录 java相关1. 面向对象设计原则2. 面向对象的特征是什么3. 重载和重写4. 基本数据类型5. 装箱和拆箱6. …...

面试:经典问题解决思路

1. 秒杀系统架构 参考:秒杀系统架构优化思路 2. 如何防止订单重复提交 重复提交原因: 一种是由于用户在短时间内多次点击下单按钮,或浏览器刷新按钮导致。另一种则是由于Nginx或类似于SpringCloud Gateway的网关层,进行超时重试造成的。 方案…...

Windows安卓子系统终极指南:从基础配置到专业开发全流程

Windows安卓子系统终极指南:从基础配置到专业开发全流程 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 想要在Windows 11上无缝运行安卓应用吗&…...

工业控制系统安全实践:基于ISA-62443-3-3标准的OT/IT融合指南

1. 项目概述:当工业安全遇上新标准在工业自动化领域摸爬滚打了十几年,我见过太多因为安全标准“两张皮”而引发的头疼事。一边是负责生产线的工控工程师,他们的核心信条是“稳定压倒一切”,任何可能影响PLC运行周期、导致电机意外…...

企业组网实战:用爱快+水星AC打造跨地域无线网络,远程管理分支AP就这么简单

企业级无线组网实战:跨地域统一管理与远程控制方案 在数字化转型浪潮中,中小企业对无线网络的依赖程度越来越高。无论是总部办公室、分支机构还是临时办公点,稳定、安全且易于管理的无线网络已成为企业高效运营的基础设施。然而,…...

企业安全运维:轻量级OpenClaw检测脚本的设计、部署与MDM集成实战

1. 项目概述:为什么我们需要一个轻量级的OpenClaw检测脚本?在当今的企业IT环境中,开发工具和AI辅助编程代理的普及带来了前所未有的效率提升,但同时也引入了新的安全与合规盲区。想象一下,一个未经批准的开发工具&…...

内容创作团队如何通过多模型选型提升文案生成质量与效率

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 内容创作团队如何通过多模型选型提升文案生成质量与效率 对于新媒体运营和内容营销团队而言,持续产出高质量、风格多样…...

技术深度解析CoverM在PacBio HiFi宏基因组测序数据覆盖率分析中的应用

技术深度解析CoverM在PacBio HiFi宏基因组测序数据覆盖率分析中的应用 【免费下载链接】CoverM Read alignment statistics for metagenomics 项目地址: https://gitcode.com/gh_mirrors/co/CoverM CoverM作为一款专门用于计算基因组覆盖率的生物信息学工具,…...

手把手教你用MOS管搭建防反接电路:从原理图到PCB布局的避坑指南(以立创EDA为例)

从零构建MOS管防反接电路:立创EDA实战全流程解析 电源反接是电子设计中最常见的"低级错误"之一,却可能造成毁灭性后果。想象一下:你花费数周完成的智能家居控制器,因为电池装反而瞬间烧毁主控芯片——这种场景在创客社区…...

装修预算告急?办公室墙面选对乳胶漆+木饰面,省一半钱还显高级

办公室墙面装修,最纠结的问题莫过于:选乳胶漆还是木饰面?前者经济实用、灵活百搭,后者质感高级、温润大气,很多企业在二者之间反复权衡,却忽略了一个关键答案——乳胶漆与木饰面搭配使用,才是兼…...

Claude Code配置切换器:一键管理多AI服务环境变量

1. 项目概述:为什么我们需要一个Claude Code的配置切换器如果你和我一样,日常重度依赖Claude Code这个AI编程助手,那你肯定遇到过这个场景:今天想用智谱的GLM-4.5,明天想切到月之暗面的Kimi,后天可能又得用…...

便民服务渠道智慧整合融通方案

便民服务渠道智慧整合融通方案 目录 第1章项目概述 7 1.1项目背景 7 1.2项目建设目标 7 1.2.1总体目标 8 1.2.2具体目标 8 1.3项目建设范围 9 1.3.1渠道整合范围 9 1.3.2业务覆盖范围 10 1.3.3系统建设范围 10 1.4项目建设意义 11 1.4.1对群众的意义 11 1.4.2对政府的意义 11 …...