【进阶】Spring Boot配置文件(.properties提示有问题版)

news2024/11/14 16:26:57

努力经营当下,直至未来明朗!

文章目录

  • 一、配置文件作用
  • 二、配置文件的格式
  • 三、properties配置文件说明
    • 1. properties 基本语法
    • 2. 读取配置文件
    • 3. properties缺点分析
  • 四、 yml配置文件说明
    • 1. yml基本语法
    • 2. yml使用进阶
    • 3. 注意:value值加单双引号
  • 五、 补充拓展
  • 小结


普通小孩也要热爱生活!

一、配置文件作用

  1. Class字节码文件只能读,不能进行修改
  2. 配置文件内容是可以直接进行修改的,对于运维人员来说也是比较友好的。
  3. 重要信息直接存入配置文件(如端口、连接数据库等)
  4. 配置文件的分类:
    1)系统的配置文件:比如连接字符串、日志的相关设置等,是系统定义好的。
    2)用户自定义的
  5. 整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:

数据库的连接信息(包含⽤户名和密码的设置);
② 项⽬的启动端⼝
③ 第三⽅系统的调⽤秘钥等信息
④ ⽤于发现和定位问题的普通⽇志和异常⽇志等。


二、配置文件的格式

  1. Spring Boot 配置⽂件主要分为以下两种格式:
    .properties (早期版本,默认版本)
    .yml (后期版本,可以视为.properties的升级版)

(二者是可以共存的)

  1. 配置文件是放在resources目录下的
  2. 约定大于配置:只有叫application.properties、application.yml(也就是前面是application才可以在Spring Boot启动的时候被加载
  3. 如果application.properties、application.yml均存在,并且有配置信息冲突时,早期的的application.properties优先!
  4. 特殊说明
    ① 一个项目中可以存放两种配置文件(.properties、.yml),但是不建议一个项目中出现两种配置文件,提高可维护性。
    ② 当一个项目的某个配置出现在两种格式的配置文件中时,此时匹配项会以properties为主(忽略yml中的配置)。
    ③ 也就是说:.properties文件的优先级更高,但是加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
  5. 注:
    1).yml中是会有代码提示的,但是.properties中是不会有任何代码提示的
    2)此时需要安装Spring Tools插件,就可以解决默认情况下不支持.properties格式的日志提示的问题了。(这里有点不对,找不到插件!

三、properties配置文件说明

1. properties 基本语法

  1. properties配置文件 的基本语法:
    key=value(注意中间是没有空格的,后面也是没有空格的!!)

  2. ⼩技巧:配置⽂件中使⽤“#”来添加注释信息

  3. 另外:.properties默认是不支持中文的(yml支持中文),中文乱码问题的处理方法
    ① File -> settings(配置当前项目) -> 左边搜索encoding -> 选择 File Encoding -> 全部设置为utf-8(三个) -> ok
    0

② file -> new project settings(配置新建项目) -> 选择settings for new project s-> 后续操作一样
1

删除原来的application.properties,然后重新创建一个application.properties。

因为之前的配置文件已经是不支持中文编码的文件格式,即使设置了编码格式之后也是没有改变原来的配置文件格式的,所以需要先将之前的配置文件删除掉重新创建,以此来实现中文的支持。

④ 经过以上三步之后才能创建一个不是中文乱码的application.properties文件,并且之后再创建application.properties 也是不会出现中文乱码的。


2. 读取配置文件

读取单个配置文件

在properties中设置配置文件
2

① 使用@Value注解来读取配置文件的内容

② @Value 注解使⽤“ ${key值}”的格式读取,{}中是key值。

③ 即:@Value(“${key值}”)

④ 注:key值不管是在yml中还是properties中都是x.y的形式(但是实际设置配置文件的时候是有区别的!)
3
5

[补充] 在yml中设置配置文件以及获取到配置文件
6


3. properties缺点分析

  1. properties配置是以key=value(没有空格)的形式进行配置的
    7

  2. 从配置key可以看出,properties 配置⽂件中会有很多的冗余的信息

  3. 要想解决properties文件的冗余信息,就可以使⽤ yml 配置⽂件的格式化了。


四、 yml配置文件说明

  1. yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。
  2. yml优点:
    写法简单,可读性更高,语法和JSON类似。
    ② 支持的数据类型更多。

① 它可以简单表达清单(数组)、散列表、标量等数据形态。
② 它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

③ 可以跨语言使用,如java、golang以及高版本python等


1. yml基本语法

  1. 基本语法:Key: value (注意中间空格不可以省略!
  2. 使用示例:
    8
  3. [补] yml是树形结构的配置文件

2. yml使用进阶

  1. yml配置不同数据类型及 null
# 字符串
string.value: Hello

# 布尔值,true或false
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: ~
  1. 测试:

① 读取为null的配置:多打印一行空行
9
② 根本不存在的配置:直接报错
10
11

  1. yml配置和读取对象

1)配置对象:不要忘记key: value(空格!
13

2)读取对象
注:@Data是一个集合注解,里面包括get、set、toString、equals等等一系列方法
① 创建一个与对象匹配的类
② 在该匹配类上加上@Data注释以及@ConfigurationProperties(prefix = “xxx”)[针对的是对象]注释(注意:prefix = “xxx”中的xxx是指配置文件中写好的key值
③读取赋值的过程是在项目的启动中加载的,要加上 五大类注解(不能省略)。
15

④ 然后使用属性注入的方式进行读取
16
17

  1. yml配置和读取集合

1)配置集合
18

2)读取集合
① 类似于对象的读取,先创建一个类,然后设置注解@ConfigurationProperties(“xxx,即yml中配置的集合名”) 【注意,这里加不加prefix=都是ok的】
② 存储是一个集合,所以在类中声明一个集合,如链表,但是要注意集合名称要和配置中保持一致!!
③ 直接使用属性注入获取就行
19
20
21

3. 注意:value值加单双引号

  1. application.yml的键值对
    22

  2. 测试输出:
    在这里插入图片描述
    23

  3. 对双引号中的内容进行转义:
    25

  4. 小结:yml中单双引号问题:
    yml中如果使用了双引号就会按照(原)语义进行执行,如果不加单、双引号 or 加了单引号,那么就默认会将字符串中的特殊字符进行转义,比如\n -> \\n(转义处理)。


五、 补充拓展

  1. 如果想要了解更多Spring Boot的系统配置项,可以访问官网:系统配置项
  2. properties 和 yml

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

  1. Spring Boot读取配置文件的五种方法:
    Spring Boot读取配置文件

  2. 设置不同环境的配置⽂件:
    1)创建不同环境的配置⽂件:
    application-dev.yml
    application-prod.yml
    2)在 application.yml 中设置运⾏环境

spring.profiles.active=dev

小结

  1. 配置文件存储重要数据
  2. 配置文件格式:.properties、 .yml
  3. .properties配置:key-value
  4. .yml配置:key: value(注意空格)
  5. yml的优点
  6. yml中value的单双引号使用

yyy

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

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

相关文章

即时通讯开发之TCP 交互数据流、成块数据流

目前建立在 TCP 协议上的网络协议特别多,有 telnet,ssh,有 ftp,有 http 等等。 这些协议又可以根据数据吞吐量来大致分成两大类: 交互数据类型:例如 telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文 字等等。 数据…

【JavaScript】常见的事件(鼠标、键盘、表单等)

💻【JavaScript】常见的事件 🏠专栏:JavaScript 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向:目前主攻前端&…

Xilinx 7系列FPGA之Artix-7产品简介

数字化革命改变了对新手和有丰富经验的 FPGA 设计人员的期望。为了在航空航天和国防、通信基础设施、医疗、工业和消费电子等对成本敏感的市场中竞争,需要在广泛的密度范围内提供强大的高性能功能组合。在不牺牲性能的情况下,开发人员必须能够扩展使用模…

python和netlogo软件模拟病毒传播仿真模型(一)

目前国内在网络舆情仿真建模中所使用的仿真平台主要有 Netlogo、Anylogic、Matlab、Vensim 等,netlogo软件是一款比较通用的。 但是他是由logo语言构成,语言逻辑很让人抓马。 这里python 中的mesa可以实现其中一部分,这里看一下病毒传播仿真模…

WPF 笔记3——在XAML中给对象属性赋值

看B站刘铁猛老师视频学习WPF XAML语言是从xml文件派生而来,是声明式语言,一个标签就表示声明了一个对象。 对象的值可以存储在对象的字段中,也可存储在对象的属性中; 通过给对象的属性赋值,可以在赋值时检查值的合法…

Redis6学习笔记【part2】基本数据类型与常用命令

一.单线程多路IO复用技术 Redis是单线程多路IO复用技术。多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用 select 和 poll 函数,传入多个文件描述符,如果有一个文件描述符就绪,则…

【make、makefile】

前言 打怪升级第:26天 | make、Makefile make是一条命令,Makefile是一个文件, make是一个命令工具,是一个解释Makefile文件中指令的命令工具。 makefile是一个围绕依赖关系和依赖方法构造的一个自动化编程工具, 一个…

博客部署教程

1:安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2 //安装必要工具yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //设置yum源yum install -y docker-ce //下载dockersystemctl start docker //启…

excel函数技巧:两个查询函数的用法比较 下篇

VLOOKUP和LOOKUP这对高频函数的较量注定是场持久战。在前两个回合的较量中,VLOOKUP占据上风,此番更要乘胜追击。新一轮较量,即刻开战!***ROUND 03 交叉查询什么是交叉查询?我们可以通过一个查找值查找多个字段。如果被…

Android 深入系统完全讲解(26)

AudioTrack 构造过程 每一个音频流对应着一个 AudioTrack 类的一个实例,每个 AudioTrack 会在创建时注册到 AudioFlinger 中,由 AudioFlinger 把所有的 AudioTrack 进行混合(Mixer),然后输送到 AudioHardware 中进行播…

spice auth过程分析

1、客户端选择认证方法 Client authentication method selection抓包分析{Authentication selected by client: Spice (1)}代码分析spice_channel_send_link(channel);if (!spice_channel_recv_link_hdr(channel) ||!spice_channel_recv_link_msg(channel) ||!spice_channel_re…

Allegro如何设计线圈操作指导

Allegro如何设计线圈操作指导 在做PCB设计的时候,在特殊场合时候需要设计线圈,Allegro支持快速设计出线圈,如下图 具体操作如下 选择File选择Change Editor

实现树莓派homeassistant OS远程控制内网穿透--ddnsto教程

一、两种穿透服务 1、molohub 一种是论坛提供的molohub,但是可能因为自己这边的网络原因在配置过程中一直无法连接到服务器,无法绑定github,因此放弃molohub的方法。如下图所示。molohub教程如下,不再赘述。 molohub的Github教程…

ejson4cpp——一个使用极致简单且性能可比rapidjson的C++json解析库

文章目录ejson4cpp快速开始要求安装与引入开始使用常见用法API介绍通过命名风格识别API宏定义FROM_JSON_FUNC&FROM_JSON_FRIEND_FUNCTO_JSON_FUNC&TO_JSON_FRIEND_FUNCAUTO_GEN_NON_INTRUSIVE&AUTO_GEN_INTRUSIVEENABLE_JSON_COUTFromJSON系列函数参数说明使用示例…

WireShark从入门到精通

一、什么是WireShark?Wireshark 是一个开源抓包工具或者叫网络嗅探器,用于分析网络流量和分析数据包。其实WireShark以前的名字不叫WireShark,以前都叫做Ethereal,于1998 年首次开发,直到 2006 年才改为 Wireshark。Wi…

powerdns 系列之二 PowerDNS Authoritative Server

PowerDNS Authoritative Server 权威服务器,直接查询数据库去尝试解析,数据库中若不存在此记录,则直接返回空结果。 os: centos 7.8.2003 pnds: 4.7.3 安装 pdns 安装 pdns auth yum install epel-release yum-plugin-priorities curl -o…

Alibaba微服务组件Nacos注册中心学习笔记

1. 什么是 Nacos 什么是 Nacos官方网站:什么是 Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 集 注册中心配置中心服务管理 平台 Nacos 的关键特性包括: 服务发现和服务健康监测 动态配置服…

Vue前端项目【尚品汇】

Vue前端项目【尚品汇】1. 说明2. 对项目创建3.结构4. 项目运行起来时,浏览器自动打开5.关闭ESLint校验功能1. 说明 学习完了Vue后并没有一个整体的项目,让我明白前端的工程化开发。因此在B站找了一个开源的项目进行练手,并在这里进行记录。 …

深度学习理论介绍

在机器学习理论介绍中说过,深度学习是机器学习的一种技术,下面我们具体来看下。 1、 定义 深度学习首先是一种机器学习。深度学习的基础,叫做神经网络,这本身就是一种机器学习算法。 深度神经网络(Deep Neural Netwo…

产品小白如何从模仿开始学习Axure

​有一些小伙伴有这样的疑问,如果想学习产品经理的知识,但是从来对产品经理完全没有认识,该怎样去开始学习呢? 对于这种情况的小伙伴,有个建议是可以先从axure的学习入手。 那么问题又来了,应该如何开始axu…