Spring Boot配置文件的语法规则

news2025/2/22 0:12:39

主要介绍两种配置文件的语法和格式,properties和yml

目录

1.配置文件的作用

2.创建配置文件

3.properties语法

4.yml语法

5.配置文件格式


1.配置文件的作用

对于配置文件,也有独立的文件夹去存放,主要用来存放一些需要经过变动的数据(变量值);后续这些变量的值需要改变的话,直接在配置文件中修改值即可,就不需要一个个变量去修改了。

通常需要存放在配置文件中的数据

(1)项目的启动端口

(2)数据库的连接信息(如:用户名和密码)

(3)第三方系统的调用密钥等信息(如:验证当前客户端是否正确)

(4)用于发现和定位问题的普通日志和异常日志等

概念听起来都很很迷糊,我们直接开始教学

2.创建配置文件

这个还需要教吗?当然需要。

(1)创建文件的位置

当项目创建好之后,一般都会默认存在application.properties这个配置文件,下面的application.yml是我后面创建的。

(2)创建文件的名字

名字是很固定的,必须是:application.properties或者application.yml,这两个都是配置文件的格式,一般我们使用其中一个即可(一般yml使用的较多)。还有一种是application.yaml,这种其实是yml的缩写,所以我们就不会多介绍了。

(3)当项目中properties和yml都存在,并且里面的内容冲突时,会以properties中的为配置项,也就是其优先级更高

3.properties语法

首先,我们先认识一下界面

双击点开:

我们就会来到这个页面,就在这个页面就行编写配置内容

(1)语法格式

通过上面我们可以看到,通过=连接。

  • 语法规则:key和value之间通过=连接,key和key之间使用.连接

=左边的就是key,=右边的是value,在获取配置文件时,需要填入完整的key。

在配置文件中,使用#号进行注释

  • 举例

配置端口号:有提示可以直接使用

这个有什么用呢?我们启动一下程序即可知道

配置数据库相关信息:

spring.datasoure.url = jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false
spring.datasource.username=zhangsan
spring.datasource.password=123456

其中,key 和value我们都是可以自定义的。

上面介绍了如何配置文件内容,接下来,就是要去代码中获取key对应的值

(2)获取配置文件

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/con")
@RestController
public class Controller {
    //获取端口号
    @Value("${server.port}")
    private String port;

    @RequestMapping("/get")
    public String getValue() {
        return "port="+port;
    }
}

运行结果:

原理:程序运行之后,会将对应的值存放在port中;发挥作用的是@Value注解,然后里面格式为:"${}",花括号内就是路径,也就是key。

也可以通过其他的注解获取(不需要借助浏览器或者postman),我们在方法前面加上@PostConstruct注解,当项目运行起来后,就会默认执行该方法。

代码:

//获取url
    @Value("${spring.datasoure.url}")
    private String url;

    @PostConstruct
    public void get() {
        System.out.println("================");
        System.out.println("spring.datasoure.url"+url);
        System.out.println("================");
    }

运行结果:

以上就是获取配置文件的方法了。

(3).properties的缺点

为什么要介绍缺点,那是为了方便介绍yml,更有对比性。

缺点:存在很多的重复项

每写一个配置项,都需要重新写一长串前缀,就会显得很冗余。所以,我们需要再去学习yml

4.yml语法

(1)语法格式

格式:key: value (冒号后面有一个空格,不可以省略),如果多个key,也就是每个key中间由点好分割,在yml格式下就要改成冒号+换行分割

像上面的就是大致的写法,冒号后面的空格一定不要忘。还有一点就是:其中null使用~表示,其他的类型比如整型和字符串,使用什么类型去接受,就可以自动转换成什么类型

(2)获取配置文件

yml格式获取配置文件和properties是一样的

import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class YmlController {
    @Value("${string.str1}")
    private String str1;
    @Value("${string.str2}")
    private String str2;
    @Value("${string.str3}")
    private String str3;

    @Value("${mykey}")
    private String value;

    @Value("${key.you.love}")
    private String love;
    @Value("${test}")
    private int num;

    @PostConstruct
    public void getValue() {
        System.out.println(value);
        System.out.println("========================");
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println("========================");
    }
}

一样一样的,文件的路径也是一样,都使用点号连接。但是yml在编写的时候格式不同怎么获取呢?下面教学。

只需要选中key,然后右键,然后复制到"${}"中即可。

(3)yml中的单双引号的差异

打印结果:

一般双引号里面的东西不会被被转义,单引号里面的会被转义,也就是\n在单引号下就只是一个串,在双引号下是换行

(4)配置对象

上述是配置普通类型,下面介绍配置对象

获取整个对象不能再使用@Value注解,而使用:@ConfigurationProperties

打印结果:

这就是获取对象的方法

(5)获取集合

获取list

获取set:

打印结果:

获取map:

(6)yml优缺点

优点:

1.可读性高,写法简单,易于理解

2.支持更多的数据类型,可以简单表达对象

3.支持更多的编程语言

缺点:不适合写复杂的配置文件

以上就是全部语法内容了。

5.配置文件格式

我们只需要修改成UTF-8编码即可,也就是支持中文注释

(1)配置当前文件

在seting搜索栏中输入:File encodings,然后出现下面的页面

上述只是将当前项目修改

(2)修改后续创建的所有项目

进入后继续搜索:File encodings

以上就是本节的全部内容了。

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

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

相关文章

质数差列 信友队

题目描述 驰骋宇宙的鱼大大找到了一个古遗迹,稍作研究后发现这是一个来着远古的质数星球文明遗迹,这个文明的特点是所有事物都和质数息息相关。于是,鱼大大赶紧列出了一堆的质数,以方便自己的研究。 这天鱼大大找到了质数星球文明…

ubuntu安装docker和docker-compose

安装软件包 sudo apt install apt-transport-https ca-certificates software-properties-common 将 Docker 的 APT 源添加到系统中 echo "deb https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/…

<Python><paddle>基于python使用百度paddleocr实现车牌识别

前言 paddleocr是百度飞桨的一个文字识别库,准确度非常高,基于其文字识别的基础,将其用于车牌识别。这个识别的准确度是相当高的。 环境配置 系统:windows 平台:visual studio code 语言:python 库&#…

FreeModbus学习——eMBInit初始化

FreeModbus版本:1.6 在mb.c文件中 先看一下静态变量的定义 /* ----------------------- Static variables ---------------------------------*/static UCHAR ucMBAddress; static eMBMode eMBCurrentMode;ucMBAddress是从机地址,eMBCurrentMode是M…

简易版:在 SpringBoot 中设计一个订单号生成系统

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 引言 要在SpringBoot中设计一个订单号生成系统,你可以按照以下步骤进行: 创建一个SpringBoot项目,添加必要的依赖,如spring-boot-starter-web。 创建一个订单…

前端了解到框架-网络复习

前端 HTML 超文本标记语言 画页面 各种各样的标签组成页面进行展示 桌面创建文本修改后缀即可 <!DOCTYPE html>: 声明文档类型和HTML版本。<html>: 根标签&#xff0c;所有其他标签都包含在内。<head>: 包含了文档的元数据&#xff0c;如字符编码、网页标…

Mac系统中用brew安装MongoDB【详细教程】

文章目录 概述一、安装步骤1.下载适用于 MongoDB 的官方 Homebrew 公式和数据库工具,方法是在 macOS 终端运行以下命令:2.更新 Homebrew3.安装 MongoDB二、使用步骤1.查看版本2.启动服务3.停止服务4.连接测试三、可视化工具1.MongoDB Compass2.使用概述 使用本教程在 macOS …

heic怎么转换成jpg?heic转jpg,分享6款图片格式转换器免费汇总!

众所周知&#xff0c;在与非苹果手机设备用户&#xff08;如安卓手机或Windows台式机用户&#xff09;分享照片之前&#xff0c;通常需要将iphone的heic格式转换为jpg。由于这些操作系统的旧版本不原生支持heic图片格式&#xff0c;因此需要额外的第三方工具来查看这些图像。因…

1.Linux_基础

文件结构 Linux的文件结构是一个倒的树状图&#xff0c;具体结构如下&#xff1a; bin&#xff1a;存放二进制文件 boot&#xff1a;存放系统启动文件 dev&#xff1a;存放设备文件 etc&#xff1a;存放系统管理时要用到的各种配置文件和子目录 lib&#xff1a;存放系统动…

Redis:AOF持久化

1. 简介 以日志的形式来记录每个写操作&#xff0c;将redis执行的每个写操作记录下来&#xff08;读操作不记录&#xff09;&#xff0c;只需追加文件但不可以改写文件&#xff0c;redis启动之初会重新构建数据&#xff0c;即redis重启后会将日志中的所有写指令重新执行一遍以达…

html+css 实现单选按钮动画(input radio按钮)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

kuberneter管理GUI工具Lens

从github上可以知道&#xff0c;lens的前端是用electron做的客户端工具&#xff0c;打开安装路径你会发现kubectl.exe,没错&#xff0c;就是你经常用的kubectl命令行的客户端工具。kubectl本来就能输出json的数据类型&#xff0c;集成前端更方便了。看到这里你是不是发现&#…

在线投稿小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;编辑管理&#xff0c;用户文章管理&#xff0c;文章分类管理&#xff0c;文章展示管理&#xff0c;文章稿酬管理&#xff0c;通知公告管理&#xff0c;系统管理 微信端账号功能包…

5、从0搭建企业门户网站——Tomcat下载、安装与使用

目录 正文 1、下载Tomcat 2、安装Tomcat 3、运行Tomcat 4、停止Tomcat 正文 企业门户网站软件开发完成后,我们需要在云服务器上运行我们的软件,安装Tomcat是很有必要的。下面以Tomcat 10为例,演示其下载、安装与使用。 1、下载Tomcat Tomcat 10下载地址 将Tomcat 10下…

基于Java的模拟写字板的设计与实现

点击下载链接 基于Java的模拟写字板的设计与实现 摘要&#xff1a;目前&#xff0c;很多新的技术领域都涉及到了Java语言&#xff0c;Java语言是面向对象编程&#xff0c;并且涉及到网络、多线程等重要的基础知识&#xff0c;因此Java语言也是学习面向对象编程和网络编程的首…

前端和Postman调用同一个接口,拿到的数据不一样

1、表现 联调一个List接口&#xff0c;Postman自测得到的ID和前端调用得到的ID&#xff0c;结果不一样。前者结果&#xff1a; 后者结果&#xff1a; 同一份代码、同一个数据库&#xff0c;出现这种错误&#xff0c;大概率是类型转换时出问题了&#xff0c;但检查代码发现&…

[工具] GitHub+Gridea+GitTalk 搭建个人免费博客

文章目录 起因GitHub创建个人仓库存主页创建用于Gridea连接的Token Gridea配置 GitTalk大功告成 起因 想要搭建自己的博客网站&#xff0c;又不想花钱买域名&#xff0c;也不会前端技术&#xff0c;只能求助于简单(傻逼式)且免费的博客搭建方式。偶然间看到这种方式&#xff0…

视频播放--vue3+西瓜播放器

西瓜播放器官网 实现方式非常简单&#xff0c;只需三步&#xff1a;安装、DOM占位、实例化即可完成播放器的使用 安装 npm install xgplayer 引入 import Player from "xgplayer"; import "xgplayer/dist/index.min.css"; 注意&#xff1a;一定要引入…

最新风车IM即时聊天源码及完整视频教程2024年7月版

堡塔面板 试验性Centos/Ubuntu/Debian安装命令 独立运行环境&#xff08;py3.7&#xff09; 可能存在少量兼容性问题 不断优化中 curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 R…

生物学家做不出 AlphaGO,但也在创造生命……

提到人造生命&#xff08;Artificial Life&#xff09;&#xff0c;你会想到什么&#xff1f; 也许是希腊、玛雅、中国神话故事里的人造生物&#xff0c;亦或者是科幻电影里可以执行命令的机器人&#xff0c;也可能是这几年以 AlphaGo 为代表的人工智能技术&#xff08;AI&…