【Spring Boot学习】怎么配置文件,配置文件有什么用

news2024/11/20 18:31:15

前言:
💞💞今天我们依然是学习Spring Boot,这里我们会更加了解Spring Boot的知识,知道Spring Boot的配置文件是什么样子的。有什么用?怎么使用Spring Boot的配置文件。
💞💞路漫漫,希望大家坚持下去,不忘初心,成为一名优秀的程序员

个人主页⭐: 书生♡
gitee主页🙋‍♂:奋斗的小白
专栏主页💞:JavaEE进阶专栏
博客领域💥:java编程前端,算法,强训题目
写作风格💞:超前知识点,干货,思路讲解,通俗易懂
支持博主💖:关注⭐,点赞、收藏⭐、留言💬

在这里插入图片描述

目录

  • 1.配置文件
    • 1.1什么是配置文件
    • 1.2 配置文件的作用
    • 1.3 配置文件的格式
  • 2.properties文件
    • 2.1 properties文件的格式
    • 2.2 properties文件的读取
    • 2.2 properties文件的缺点
  • 3.yml 配置⽂件
    • 3.1 yml文件的格式
    • 3.2 yml文件的优缺点
    • 3.3 读取yml文件的对象
    • 3.4 yml文件配置不同的类型
  • 4.properties VS yml
  • 5.设置不同环境的配置⽂件

1.配置文件

1.1什么是配置文件

 配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。是用户可配置的,通常存储在纯文本文件中

配置文件可以是各种格式,完全凭借程序员的发挥,不过出于方便,大部分会选择的配置文件格式集中在那几种.一般而言程序启动时,会加载该程序对应的配置文件内的信息

1.2 配置文件的作用

 在我们所编写的项目中,所有的重要数据都是在配置文件中配置的,因此配置文件是非常重要的。

有这么几点作用:
1.数据库的连接工作
2.端口号的配置
3.打印日志等等

我们的后端程序都是要连接数据库的,所以没有配置信息你就不能连接数据库,甚至不能排查日志问题。

1.3 配置文件的格式

Spring Boot 配置⽂件主要分为以下两种格式:
.properties
.yml

在这里插入图片描述
properties 类型的配置⽂件就属于⽼款,也是创建 Spring Boot 项⽬时默认的⽂件格式,⽽ yml 属于新版,如果⽤户了解情况直接指定要新款,那么就直接发给他。

注意:

  1. 理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置“server.port”,
    那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载
    完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
    2虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。

2.properties文件

2.1 properties文件的格式

properties文件的配置格式:
是以键值对形式存在的,key和value之间是以“=”连接的
例如:

> 这里是引用

注意: 配置⽂件中使⽤“#”来添加注释信息。

2.2 properties文件的读取

当我们想要读取配置文件的时候,我们可以使value注解来实现

value注解使用&{ }的格式来读取

@Controller //当前为类控制器
@ResponseBody //返回的是数据,不是页面
public class TestControler {

    @Value("${mytest}")
    private  String mytest;

    @Value("${mytest2}")
    private  String mytest2;

2.2 properties文件的缺点

当我们使用properties文件配置的时候,就会发现太过于冗余了。

spring.url= jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
spring.username= root
spring.password=123456

在这里插入图片描述

3.yml 配置⽂件

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语
⾔”。
也就是说,yml是一种语言

3.1 yml文件的格式

yml的语法格式:
key: value(注意冒号以后是有一个空格的,并且这个空格是不可以省略的)

在这里插入图片描述
可以看出来,但我们的配置是正确的时候,idea是会给我们有意识的。

当我们使用yml来配置数据库的时候,我们可以使用多级目录来配置。

pring:
  datasource:
    url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
    username: root
    password: 123456

在这里插入图片描述

3.2 yml文件的优缺点

优点:
1.yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
2.yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
3.yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、
JavaScript、Perl 中。

3.3 读取yml文件的对象

当我们要想通过yml来配置,一些对象的时候,我们会使用@ConfigurationProperties来配置

在这里插入图片描述

3.4 yml文件配置不同的类型

# 字符串
string.value: Hello
# 布尔值,truefalse
boolean.value: true
boolean.value1: false
# 整数
int.value: 10、
# ⼆进制
int.value1: 0b1010_0111_0100_1010_1110 
# 浮点数
float.value: 3.14159
# 科学计数法
float.value1: 314159e-5 
# Null~代表null
null.value: ~

这里需要注意:当我们配置字符串的时候,一定要注意单双引号

mystring: 你好, \n 世界
mystring1: '你好, \n 世界'
mystring2: "你好, \\n 世界"

在这里插入图片描述
当我们不添加引号的时候,是可以的,直接添加单引号的时候也是可以的,但是当我们使用双引号的时候,如果里面有斜杠,那么我们需要添加转义字符。

当我们配置对象的时候,我们有两种写法
在这里插入图片描述

4.properties VS yml

properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的
树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英
查看更多系统配置项,⽂冒号加空格的⽅式设置,并且空格不可省略。
properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。
yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置⽂件。
yml ⽀持更多的数据类型。

5.设置不同环境的配置⽂件

因为我们在以后得工作中我们会有开发和测试等等,因此可能需要配置不同的文件,所以我们需要设置不同的环境配置。

假设我们配置了一个开发的文件application-dev和一个测试的文件application-prod
那我们怎么在不同的情况下使用不同的配置呢?
这个时候呢我们就需要在yml中设置我们需要的运行环境。
在这里插入图片描述

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

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

相关文章

Apache James 同时开启25、587、465端口

前提: 可以参考如下两篇文章在window或者linux上,先部署好Apache James Apache James邮件服务器搭建(linux)_Steven-Russell的博客-CSDN博客 Apache James邮件服务器搭建(windows)_Steven-Russell的博客…

Qt6.2教程——6.QT常用控件QLineEdit

一,QLineEdit简介 QLineEdit是Qt库中的一个控件,它提供了一个单行的文本输入框。用户可以在这个输入框中输入和编辑文本。它可以设置占位符文本(Placeholder Text),当QLineEdit为空的时候显示这个占位符文本。它还可以…

JDK8新特性之方法引用【 ::】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于方法引用的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.是什么 二.为什么要用 三.什么时候…

chrome录制保存网络请求

有时候,需要与同事共同查看网络请求,但是现场往往环境限制,导致无法访问环境。在这里推荐一种利用chrome保存网络请求的方法。 准备: 1. chrome浏览器(最好版本号是62以上) chrome浏览器越新越好(最新稳定…

rsarsa

数学很酷!使用RSA算法对秘密消息进行解码,c,p,q,e是RSA算法的参数。 RSA算法还不太了解,经过这段时间的学习,得知 q和p是最开始选择的两个质数,主要是为了计算出钥匙n e是在1到φ(n)…

服务器编程:数据库连接池

引言: 数据库连接池和线程池的思想一样,是为了避免频繁创建和销毁数据库连接导致的性能开销。如果一个项目频繁的需要访问数据库,那么它就有可能需要频繁的创建/销毁数据库连接,那么我们可以采用数据库连接池的技术,在…

Docker中搭建RabbitMQ集群

Docker中搭建RabbitMQ集群 1、启动三个RabbitMQ容器2、为容器设置节点2.1、设置Erlang Cookie2.2、设置节点12.3、设置节点22.4、设置节点32.5、预览结果 3、配置镜像队列3.1、配置镜像的原因3.2、搭建步骤 1、启动三个RabbitMQ容器 服务器IP端口hostname管理界面地址192.168.…

IoC容器的设计(利用反射、注解和工厂模式实现)

1.实验要求 利用注解、反射和工厂模式设计一个简单的IoC容器该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解: 注解含义Component标注BeanAutowired标注需要被注入的对…

如何写好一份企业直播主题策划?

写一份好的直播主题策划,需要考虑包括目标受众、目的、内容、形式、互动等,下面是写企业直播主题策划的一些关注点,希望能帮到您。 定位您直播的目标受众 明确你的直播主题适合的目标受众是谁,他们的兴趣、需求和期望是什么。了解…

OAuth2,jwt,springsecurity之间的区别和联系

OAuth 2.0、JWT (JSON Web Token) 和 Spring Security 是安全相关的概念和技术,它们有着不同的功能和用途。 OAuth 2.0(开放授权): OAuth 2.0 是一种授权框架,用于授权第三方应用程序访问用户资源,而无需共…

【OpenCV DNN】Flask 视频监控目标检测教程 10

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 10 3.10 OpenCV DNNFlask实时监控目标检测1、加载MobileNet SSD模型2、导入分类名称文件3、处理视频帧进行目标检测4、新建一个Flask项目5、Python 程序文件6、视频流的网…

linux系统addr ip以及ifconfig查询不到ip地址解决方法,没有ens33

先看使用情况 网上一堆垃圾博文解决方案都是你抄我我抄你,一点用没有,都说使用 vi /etc/sysconfig/network-scripts/ifcfg-ens33 来更改配置ONBOOT为yes,改个屁,给你们看看我目前的配置,劳资本身就是yes,还…

Elasticsearch 基本使用(二)简单查询 嵌套查询

查询数据 简单查询按id查询单条记录查询所有数据设置排序filter 过滤查询数组内的值查询 嵌套查询查询一个外层字段 内的嵌套字段查询多个字段,其中有嵌套字段 简单查询 按id查询单条记录 GET bank/_doc/1查询所有数据 默认只查询10条记录 GET bank/_search {&q…

Linux任务调度、磁盘分区、挂载

一、任务调度介绍 任务调度是指系统在某个时间执行的特定的命令或程序 任务调度分为两类: 1.系统工作:有些重要的工作必须周而复始的执行,比如病毒扫描 2,个别用户工作:个别用户可能希望执行某些程序,比如…

canvas自定义绘制顺序解决遮挡问题

canvas自定义绘制顺序解决遮挡问题 1. 问题场景2. 解决思路3. 实现代码 1. 问题场景 使用canvas绘制进行要素叠加时,往往会出现不是按照先画的在下面,后画的在最上面这样的顺序进行叠加显示。原因就是由于图片大小不同导致绘制或加载的时间不一样&#…

合宙Air724UG Cat.1模块硬件设计指南--LCD专用SPI接口

概述 Air724UG支持一路LCD专用SPI接口,用于驱动SPI LCD屏幕,不能作为通用SPI使用 特性: 最大支持320240分辨率,30帧 内置图像处理单元GOUDA 支持格式: YUV4 : 2 : 0 ;YUV4 : 2 : 2;RGB565; ARGB8888 目前只支持4线8bi…

MySQL - 第8节 - MySQL复合查询

1.基本查询回顾 准备测试表: • 下面给出三张表,分别是员工表(emp)、部门表(dept)和工资等级表(salgrade)。 • 后续所要进行的查询操作都将以这三张表作为数据源,包括基…

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

GitHub 1.介绍 1.1 挑战 视觉转换器的输入单元,即图像补丁,没有预先存在的词汇。预测遮罩面片的原始像素往往会在预训练短程依赖性和高频细节上浪费建模能力 1.2 回顾一下Bert的基本架构和流程 输入编码:通过tokenizer将输入的文本中的每…

gmpy2

简介 gmpy2是一个Python扩展模块,是对GMP的封装,它的前身是gmpy。 GMP(即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成&a…

【promptulate专栏】使用ChatGPT和XMind快速构建思维导图

本文节选自笔者博客:https://www.blog.zeeland.cn/archives/ao302950h3j 💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝 CSDN主页:Zeeland🔥📣 我的博客&#…