Spring Boot的配置文件

目录

一、配置文件

1.properties为后缀的配置文件

1.1基本语法

1.2读取配置文件

1.3properties的优缺点

1.4加中文注释出现乱码

2.yml格式的配置文件

2.1基础语法

2.2读取配置文件

2.2.1对象存储到配置文件中

2.3yml的优缺点

2.4用不用加单引号或者双引号呢?

2.5设置不同环境的配置文件


一、配置文件

配置文件在项目中的权重很高,很多重要数据都是在配置文件中进行配置的。比如我们连接数据库的信息,项目的端口号等等。

配置文件中可以有注释,注释通过#来添加,yml形式的编码为UTF8所以允许有中文存在,但properties格式的编码不是UTF8,容易出现乱码,解决方法在后面。

Spring Boot提供的配置文件格式有两种:.yml(yaml)形式和.properties两种。前者是新款,后者是老款,也是Spring Boot项目默认提供的款式。

        1.两种格式的配置文件可以共存,但是当两中格式的配置文件配置了相同的东西,会用properties格式的文件。也就是因为properties配置文件的优先级比yaml格式的配置文件的优先级高。

        2.正常来讲,我们最好不要将两种格式的配置文件存放在同一项目中,维护的时候不好维护,而且最好统一起来。而且以后企业也会指定你用哪种格式的配置文件。

配置文件中的配置项分为两种:1.系统配置项,如server.port等,这个是系统给我们定义的。2.用户自定义配置(非系统配置项),这种是用户自己定义的。

1.properties为后缀的配置文件

1.1基本语法

这种配置文件是早期的配置文件,也是以键值的方式进行连接的:key=value。

#系统提供的配置
server.port=8080#自己定义的配置java = 106

1.2读取配置文件

通过注解@Value("${存储到配置文件中的名字来获取}")

下面代码用到两个注解,我在这大概说一下:

(1)RestController注解,这个是RestBody和Controller的结合体。RestBody这个注解就是表示返回的是一些数据而不是静态页面。

(2)PostConstruct这个注解,大家感觉眼熟了嘛?这不就是Bean生命周期那篇文章提到过的?在初始化阶段的时候,初始化的时候会调用这个注解标记的方法。

TestController类@RestController
public class TestController {@Value("${java}")public int num;@PostConstructpublic void test() {System.out.println(num);}
}配置文件中server.port=8080
java = 106

1.3properties的优缺点

优点:1.这个配置文件是系统默认的配置文件。

           2.properties配置项比yml的优先级高。

           3.格式简单,不容易出错。

缺点:1.写法冗余。(看下面这个图片,前面部分全部都相同,只是最后那不同,我们相同的部分却要写3次)

1.4加中文注释出现乱码

同样需要设置两个地方,全局的setting和当前项目的setting。将下面图片红色框框住的地方全部设置为UTF-8编码。

可能大家加载完以后,配置文件还是乱码,那是因为,每次项目启动的时候加载配置文件,你修改了编码方式以后,配置文件已经加载完成了,所以并没有更换为UTF-8编码方式。

可以将配置文件删除,再重新建一个就行了。

2.yml格式的配置文件

yaml格式的简写形式是yml。使用这种格式的时候一定要对空格非常敏感,因为这个对空格要求很强烈。

2.1基础语法

采用的格式是key: value(一定要注意!value和冒号之间有空格)空格不可少,如果缺少了空格,就会发生错误。

2.2读取配置文件

对于某一项的读取和properties方法一样,我们来说点不一样的。yml文件可以配置对象,也可以配置集合等。获取方式就不是@Value了而是采用@ConfigurationProperties这个注解。

2.2.1对象存储到配置文件中

两种方式存储

读取配置文件中的对象,也就是通过@ConfigurationProperties("student")来读取的。

TestController@RestController
@Data
@ConfigurationProperties("student")
public class TestController {private int id;private int age;private String name;
}TestComponent
@Component
public class TestComponent {@Autowiredpublic TestController testController;@PostConstructpublic void test() {System.out.println(testController);}
}

List和对象方式存储一样,取出来的方式也一样。

2.3yml的优缺点

优点:1.yml可读性高,写法简单,易于理解,语法和JSON类似。

           2.yml支持更多数据类型,可以简单表达数组,对象,集合等。所有基础类型它也可以进行表示。

           3.yml支持更多编程语言,可以用在Java,Golang,PHP,Python,Ruby,JS,等。

缺点:1.对于新手不太友好,因为对空格要求比较强,所以当忘记空格后容易出错。

2.4用不用加单引号或者双引号呢?

1.字符串默认不用加上单引号或者双引号。

2.单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据。

str1: 'Hello\n,world'
//输出Hello\n,worldstr2: "Hello\n,world"
//输出Hello,world

3.双引号不会转义字符串里面的特殊字符,特殊字符会表达出本身想表达的意思。

2.5设置不同环境的配置文件

在实际开发中,我们可能有很多不同的环境,比方说开发环境,生产环境等等,对于不同环境会对应一个配置文件,但会有一些要求:

1.每个项目中必须有个主配置文件,名称必须为application.yml(properties)。

2.不同平台的配置文件的名字必须为application-xxx.yml,只允许对xxx处进行修改。

3.我们怎么去使用不同的环境(平台)的配置文件呢?在主配置文件中进行配置。(其中的xxx就是命名的时候不同的部分,比方说一个配置文件名为application-dec.yml则在主配置文件中设置运行环境就为spring.profiles.active=dev)

spring.profiles.active=xxx

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

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

相关文章

【C语言篇】编译和链接以及预处理介绍(上篇)

文章目录 前言翻译环境和运行环境翻译环境编译预处理(预编译)编译词法分析语法分析语义分析 汇编 链接 运行环境预处理(预编译)详解预定义符号#define定义常量#define定义宏带有副作用的宏参数宏替换的规则宏和函数的对比 写在最后…

opencv基础的图像操作

1.读取图像,显示图像,保存图像 #图像读取、显示与保存 import numpy as np import cv2 imgcv2.imread(./src/1.jpg) #读取 cv2.imshow("img",img) #显示 cv2.imwrite("./src/2.jpg",img) #保存 cv2.waitKey(0) #让程序进入主循环(让…

RAG系列之四:深入浅出 Embedding

在 RAG 系列之三:文本切分中介绍了如何将文本切分成更小的语义单元,接下来便是将拆分的文本块进行向量化。 什么是文本向量化? 文本向量化就是将文本数据转成数字数据,例如:将文本 It was the best of times, it was…

Android全面解析之context机制(二): 从源码角度分析context创建流程(上)

前言 这篇文章从源码角度分析context创建流程。 在上一篇Android全面解析之Context机制(一) :初识context一文中讲解了context的相关实现类。经过前面的讨论,读者对于context在心中有了一定的理解。但始终觉得少点什么:activity是什么时候被创建的&…

Python数据可视化案例——地图

目录 简单案例: 进阶案例: 继上文数据可视化案例,今天学习用pyecharts练习数据可视化案例2-构建地图。 简单案例: 首先构建一个简单的地图。 代码: import json from pyecharts.charts import MapmapMap() data[…

培训学校课程管理系统-计算机毕设Java|springboot实战项目

🍊作者:计算机毕设残哥 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目、 源…

大数据面试SQL(八):求连续段的起始位置和结束位置

文章目录 求连续段的起始位置和结束位置 一、题目 二、分析 三、SQL实战 四、样例数据参考 求连续段的起始位置和结束位置 一、题目 有一张表t2_id记录了id,id不重复,但是会存在间断,求出连续段的起始位置和结束位置。 样例数据&…

结构体structure、共用体union

目录 结构体 结构体类型的定义形式 结构体类型的大小 内存计算例子 共用体union 用共用体判断大小端 结构体和共用体对比 qsort() 结构体 结构体类型——用来描述复杂数据的一种数据类型 构造类型(用户自定义类型) struc…

CUDA+tensorflow+python+vscode在GPU下环境安装及问题汇总与解答

2024.8.14 因为要做深度学习,需要安装tensorflowgpu的环境,每次都搞不好整的很生气,本次将安装过程中参考的一些大佬的博客和安装过程中遇到的问题及解决方案总结一下,希望以后不要在这件事情上浪费时间。安装环境其实也没有想象中…

Halcon图像平滑与去噪

Halcon图像平滑与去噪 文章目录 Halcon图像平滑与去噪1. 均值滤波2. 中值滤波3. 高斯滤波5. 光照不均匀 有时拍摄的图像中会存在很多杂点和噪声,对于比较均匀的噪声,可以考虑用软件的算法进行 消除。例如,可以用图像平滑的方法进行去噪&#…

uniapp 自定义全局弹窗

自定义全局弹窗可在js和.vue文件中调用&#xff0c;unipop样式不满足&#xff0c;需自定义样式。 效果图 目录结构 index.vue <template><view class"uni-popup" v-if"isShow"><view class"uni-popup__mask uni-center ani uni-cust…

数学建模——启发式算法(蚁群算法)

算法原理 蚁群算法来自于蚂蚁寻找食物过程中发现路径的行为。蚂蚁并没有视觉却可以寻找到食物&#xff0c;这得益于蚂蚁分泌的信息素&#xff0c;蚂蚁之间相互独立&#xff0c;彼此之间通过信息素进行交流&#xff0c; 从而实现群体行为。 蚁群算法的基本原理就是蚂蚁觅食的过程…

R语言的算数运算

下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容&#xff0c;每篇文章都在 5000 字以上&#xff0c;质量平均分高达 94 分&#xff0c;看全文请点击下面链接&#xff1a; 3章3节&#xff1a;R的赋值操作与算术运算_r 链式赋值-CSDN博客文章浏览阅读172次。掌…

Ajax-02.Axios

Axios入门 1.引入Axios的js文件 <script src"js/axios-0.18.0.js"></script> Axios 请求方式别名: axios.get(url[,config]) axios.delete(url[,config]) axios.post(url[,data[,config]]) axios.put(url[,data[,config]]) 发送GET/POST请求 axios.get…

Windows的cmd命令行使用Linux类命令

Windows的cmd使用Linux类命令 去我的个人博客观看&#xff0c;观感更佳哦&#xff0c;&#x1f619;&#x1f619; 前言 我在使用Vscode编写C/C代码的时候&#xff0c;经常会用到Shell(你可以理解为命令行)&#xff0c;但是我不得不说Windows下Dos命令极其难用且拉跨&#x1f…

灵活易用的树莓派相机和计算机,降低了3D冰川建模的成本!

利兹大学的研究人员正在监测秘鲁的凯尔卡亚冰帽&#xff0c;这是世界上仅有的几个热带冰帽之一。 在欧洲成功进行试验之后&#xff0c;利兹大学地理学院​​​​​​​的研究人员正在安第斯山脉和喜马拉雅山脉使用树莓派计算机和树莓派高品质相机&#xff0c;建立低成本、长期…

C# simd指令之MaskMove

MaskMove指令说明&#xff1a;该方法将掩码向量中的每个非零元素对应的源向量中的元素移动到内存地址指定的位置。如果掩码中的元素为零&#xff0c;则对应的内存位置不会被修改。 MaskMove指令接受三个参数&#xff08;source、mask、address&#xff09;&#xff1a; 源向量…

养生生活视频素材去哪里找?养生系列视频素材网站分享

如何寻找高质量的养生视频素材。无论您是刚入行的新手&#xff0c;还是拥有众多粉丝的资深创作者&#xff0c;优质的养生视频素材都是吸引观众的关键。接下来&#xff0c;我将介绍一些顶级平台&#xff0c;帮助您轻松获取各类养生视频素材。 蛙学网 首先推荐的平台是蛙学网。这…

鸿蒙开发APP应用UX体验标准

基础体验 应用导航 3.1.1.1 系统返回 页面布局 3.1.2.1 布局基础要求 3.1.2.2 挖孔区适配 人机交互 3.1.3.1 避免与系统手势冲突3.1.3.2 典型手势时长设计3.1.3.3 点击热区 视觉风格 3.1.4.1 色彩对比度3.1.4.2 字体大小 3.1.4.3 图标 3.1.4.3.1 应用图标3.1.4.3.2 界…

个体内比较不同自动化背景增强(BPE)评估方法在乳腺MRI中的效果:| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统

Title 题目 Intraindividual Comparison of Different Methods for Automated BPE Assessment at Breast MRI: 个体内比较不同自动化背景增强&#xff08;BPE&#xff09;评估方法在乳腺MRI中的效果&#xff1a; Background 背景 The level of background parenchymal enh…