【SpringBoot】-SpringBoot配置文件

news2024/10/7 3:18:23

作者:学Java的冬瓜
博客主页:☀冬瓜的主页🌙
专栏:【Framework】
主要内容:.properties 配置文件和 .yml 配置文件中 配置信息的设置和获取。关于IDEA乱码的解决。.yml 配置文件的 方式语法分析和演示。 .yml配置文件 在不同平台上的配置规则。

文章目录

  • 一、关于配置文件的说明
  • 二、SpringBoot配置文件格式
    • 格式一:`.properties类型配置文件`
      • 1、设置和获取配置信息
      • 2、关于乱码的处理
      • 3、.properties和 .yml配置方式区别
    • 格式二:`.yml(yaml)类型配置文件`
      • 1、设置和获取配置信息
      • 2、.yml 配置格式语法分析
      • 3、.yml 不同平台配置规则

一、关于配置文件的说明

springboot的 配置文件有两种格式 .properties.yml(yaml) 两种。
.properties 格式使用键值对的方式,更加简单易理解,默认优先级高于.yml,但是仅能在Java中使用。
.yml 格式使用特定的格式,类似 json,更加灵活,支持的数据表示类型更多,支持多种语言中使用。

二、SpringBoot配置文件格式

格式一:.properties类型配置文件

1、设置和获取配置信息

A:在配置文件中添加配置
.properties使用 key=value 的格式。用来配置信息。
配置项:1> 系统配置项 (如server.port=“端口号”),key使用系统提供的; 2> 用户自定义项,key由用户自定义。如下图
在这里插入图片描述
B:获取配置信息
在当前项目目录的demo目录或者demo目录的子目录下创建一个类,用来获取配置信息。
@Component设置五大类注解,确保存储到spring中。
@ResponseBody:可以在类(方法)上加上该注解,设置当前类或者方法返回值是非静态页面的数据。
@RequestMapping:设置路由路径。
在这里插入图片描述
注意:获取key对应的value:使用 @Value("${键}")作为注解,在下一行写属性,类似于依赖注入,如下图。
在这里插入图片描述
C:测试结果
启动项目后,在浏览器访问路径: http://www.localhost:8080/test/configRun,得到下面的页面,获取到了端口号value:8080这个值:
在这里插入图片描述

2、关于乱码的处理

补充:在配置文件中,注释信息乱码的问题:
在当前项目和新项目的settings里都设置编码:进入settings里,输入encoding,出现下面的界面,把下面三项都改成utf8
在这里插入图片描述

3、.properties和 .yml配置方式区别

A:简单程度:.properties键值对的方式,简单易理解,易操作,是系统默认的配置方式。.yml方式则比较灵活,代码更加简洁,但新手易出错。
B:支持的数据类型限制: .properties无法支持一个对象,一个数组的设置配置信息。yml可以。
C:支持的语言: 仅支持Java,不能在其他语言使用。yml可以在很多种语言中使用,java,php,python,Golang,js等。

格式二:.yml(yaml)类型配置文件

yml是YAML的缩写,全称是Yet Another Markup Language。翻译为另一种标记语言。

1、设置和获取配置信息

A:在配置文件中添加配置
yml语法格式:
在这里插入图片描述
在这里插入图片描述
B:获取配置信息
和.properties的获取配置信息的方法一样,使用@Value和下一行使用一个属性接收 key的 value值。
在这里插入图片描述
C:测试结果
启动项目后,在浏览器访问路径: http://www.localhost:9999/test/configRun,得到下面的页面,获取到了car.body.tire的value:255这个值。
在这里插入图片描述

2、.yml 配置格式语法分析

yml可以支持字符串,对象,数组,集合。
A:字符串表示
有三种,无引号,单引号,双引号。
无引号和单引号 获取配置信息时,是所见即所得。
双引号会正确解析value中的特殊字符,如下图中的\n。
在这里插入图片描述
B:yml方式配置和读取一个类对象
配置对象如下:
在这里插入图片描述
读取对象如下:
1> 创建一个实体类,这个类上使用@ConfigurationProperties("student"),注明这是一个配置在.xml中的类。
2> 在student类上添加五大类注解和Getter和Setter方法。这个student类需要在ControllerTest2类中使用依赖注入的方式获取到ControllerTest2类。因此需要在实体类student上添加五大类注解。还得提供set和get方法,这个就使用Lombok提供的注解在实体类上加。
在这里插入图片描述
3> 在ControllerTest2类里面使用依赖注入的方式获取到 配置信息中的类 student,并在ControllerTest2初始化的时候进行 student对象的 打印。
在这里插入图片描述
4> 运行程序,显示结果,初始化时执行doPostConstruct方法。
在这里插入图片描述

3、.yml 不同平台配置规则

注意1:SpringBoot不同平台的配置规则:
1> 必须有主配置文件application.yml(或.properties)
2> 不同平台的配置文件,每个平台有一个配置文件,名是 application-xxx.yml(或.properties)。
注意2:一个项目要从无到有,到上线,至少有三个步骤:开发->测试->生产
所有阶段的配置信息相同的 配置放在 application.yml,每个阶段互不相同的配置信息则放在各自的yml里。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

芯片验证就是一次旅行

如果你国庆希望去一个你不曾去过的城市旅行,比如“中国苏州”。对游客来说,它是个蛮大的城市,有许多景点可以游玩,还有许多事情可以做。但实际上,即使最豪也最清闲的游客也很难看苏州的所有方方面面。同样的道理也适用…

第 4 章 串(文本行编辑实现)

1. 背景说明 该文本编辑器利用串的堆实现,其中对串的原始存储方式基本不作修改(有部分修改之处),优化之处在于在串的末尾加上了一个空字符,目的是区分字符串结尾,便于将串保存在文件中,且该优化…

JavaScript入门——(2)基础语法(上)

一、JavaScript介绍 1.1 JavaScript是什么 1.1.1 JavaScript是什么? JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。 注意:HTML和CSS是标记语言。 1.1.2 作用(做什么&#xff1f…

8月最新修正版风车IM即时聊天通讯源码+搭建教程

8月最新修正版风车IM即时聊天通讯源码搭建教程。风车 IM没啥好说的很多人在找,IM的天花板了,知道的在找的都知道它的价值,开版好像就要29999,后端加密已解,可自己再加密,可反编译出后端项目源码,已增加启动后端需要google auth双重验证,pc端 web端 wap端 android端 ios端 都有 …

小米机型解锁bl 跳“168小时”限制 操作步骤分析

写到前面的安全提示 了解解锁bl后的风险: 解锁设备后将允许修改系统重要组件,并有可能在一定程度上导致设备受损;解锁后设备安全性将失去保证,易受恶意软件攻击,从而导致个人隐私数据泄露;解锁后部分对系…

老胡的周刊(第109期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 lobe-chat[2] LobeChat 是一个开源的、可扩展…

面试题:说说Java并发运行中的一些安全问题

文章目录 1.什么是多线程并发运行安全问题?2.用synchronized修饰的方法3.同步块4.使用Synchronized修饰静态方法5.互斥锁6.死锁现象7.wait()和sleep()的区别 1.什么是多线程并发运行安全问题? 当多个线程并发操作一个数据时,由于线程操作的时…

在Linux上安装Percona Toolkit工具

安装步骤 1. 下载安装包 下载地址:https://www.percona.com/software/database-tools/percona-toolkit 2.上传并解压 上传tar包到服务器,并通过tar -zxvf 文件名.tar.gz解压。工具在bin文件夹中,这个是免安装的。 3. 配置环境变量 配置…

安装OpenSearch

title: “安装opensearch” createTime: 2021-11-30T19:13:4508:00 updateTime: 2021-11-30T19:13:4508:00 draft: false author: “name” tags: [“es”,“安装”] categories: [“OpenSearch”] description: “测试的” 说明 基于Elasticsearch7.10.2 的 opensearch-1.1.…

gRPC之实现TLS通信加密_已设置图床

gRPC之实现TLS通信加密 "crypto/tls"包 “crypto/tls” 是 Go 编程语言中的一个包,用于实现 TLS(传输层安全)协议。TLS 协议用于加密和保护网络通信,通常用于保护敏感数据的传输,如密码、支付信息等。在 G…

详解--计算机存储相关(寄存器、CPU Cache、内存、外存)

CPU寄存器、高速缓冲存储器、主存储器、外存储器 1. 主存储器 参考链接–主存 参考链接–内存 主存储器简称 主存,又称 内存储器(简称 内存)。作用 暂时存放CPU中的运算数据。存放指令和数据,并能由中央处理器(CPU&a…

什么是Service Worker?它在PWA中的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Service Worker的作用是什么?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

1066 二级C语言-自定义函数

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数: (1)fact(n)计算n的阶乘; (2)mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是do…

HEC-HMS和HEC-RAS水文模型、防洪评价报告编制及洪水建模、洪水危险性评价等相关案例解析

► HEC-RAS一维、二维建模方法及应用 【目标】: 1.掌握一维数学模型基本地形导入方法 2.掌握恒定流、非恒定流一维数学模型水流计算方法 3.掌握一维数学模型计算结果分析,水面线成果分析及调试;流速分布图输出方法 4.掌握一维数学模型增设构…

如何让一个uniform variable在多级shader中都起作用(类似C语言的全局变量)?

GLSL编程中通常设计多个shader,如vertex shader, fragment shader等等。在最近的某个项目中,我需要定义一个变量,该变量类似C语言中的全局变量,要同时在两个shader中都起作用。c - OpenGL Uniform Across Multiple Shaders - Stac…

2023-9-23 区间选点

题目链接&#xff1a;区间选点 #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n;struct Range {int l, r;bool operator< (const Range &W) const{return r < W.r;} }range[N];int main() {scanf("%d"…

MyBatisPlus + ShardingJDBC 批量插入不返回主键ID

本文讲述一个由 ShardingJDBC 使用不当引起的悲惨故事。 一. 问题重现 有一天运营反馈我们部分订单状态和第三方订单状态无法同步。 根据现象找到了不能同步订单状态是因为 order 表的 thirdOrderId 为空导致的&#xff0c;但是这个字段为啥为空&#xff0c;排查过程比较波折…

NebulaGraph实战:2-NebulaGraph手工和Python操作

图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点&#xff08;Vertex&#xff09;和边&#xff08;Edge&#xff09;&#xff0c;还可以将属性&#xff08;Property&#xff09;附加到点和边上。本文以示例数据集basketballplayer为例…

java的Map和Set集合

Set集合 一.HashSet HashSet 元素是无序的 向Hashset中添加元素时&#xff0c;是如何判断元素是否重复的: 添加元素时&#xff0c;如果用equals判断效率太低&#xff0c;因为equals是一个一个字符比较 HashSet底层用到hashCode和equals 一个内容&#xff1a;"sahdihwo&q…

FPGA 安装Quartus 13.1无法生成.sof文件

FPGA 安装Quartus 13.1无法生成.sof文件 安装环境编译无法生成 .sof文件分析原因 找资料1.第1篇文章2.第2篇文章 安装环境 Quarter II 13.0下载、安装、破解包括可能出现的几乎所有的问题详解野火FPGA安装视频 编译无法生成 .sof文件 分析原因 1.推测可能是破解失败。2.安装…