SpringBoot配置文件

文章目录

    • 配置文件
    • 配置文件的格式
      • .properties格式
      • .yml格式
      • 配置信息读取
    • .properties VS .yml

配置文件

配置文件是用来配置整个项目中的重要数据的,像最基本项目的启动端口、数据库的连接信息等等。对于一个完整的SpringBoot项目而言,配置文件是必不可少的一部分,对于项目的重要性自然也不言而喻。

配置文件的格式

SpringBoot配置文件主要有下面两种格式:

  • .properties
  • .yml
    在这里插入图片描述
    下面具体对两种格式的配置文件进行介绍:

.properties格式

.properties格式的配置信息设置方法如下,即不同级的配置项之间用点号.连接,配置项与具体的配置信息之间用等号=连接;
在这里插入图片描述

通过.properties格式设置配置信息,运行项目,可以在控制台看到具体的配置是否成功:

在这里插入图片描述

对于.properties格式的配置文件,其优点无疑也就是写法简单,key-value的形式也不易出错;但同时缺点也很明显,即这种配置格式的写法不够灵活和简便,对于一些同级的配置项,同样的前缀可能需要书写多次;

.yml格式

yml是YMAL的缩写,等价于YMAL;这种格式的配置信息设置方法如下,使用了更多的空白符和缩进的规则,是一种树形结构的设置方式;它的基本语法格式是 key: value ,在key和value之间使用英文冒号和一个空格分割,这里的空格不可以省略;

在这里插入图片描述
正确书写的情况下,编译器会对key进行高亮显示;

.yml的格式的可读性要更强,同时解决了数据冗余的问题,也要更加灵活和简洁。

yml格式可以配置不同的数据类型,包括NULL值:
在这里插入图片描述

yml格式的value值在进行配置时,默认是不加任何单引号或双引号的,但如果加上引号,可以表示特殊的含义:

首先在yml配置文件中进行下面的配置:

string1:
  str1: it is \n a good day
  str2: 'it is \n a good day'
  str3: "it is \n a good day"

在类中进行配置信息的读取:

package com.example.demo;

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

@RestController
@RequestMapping("/user1")
public class UserController1 {

    @Value("${string1.str1}")
    private String str1;

    @Value("${string1.str2}")
    private String str2;

    @Value("${string1.str3}")
    private String str3;


    @PostConstruct
    public void postConstruct(){
        System.out.println("str1: "+str1);
        System.out.println("str2: "+str2);
        System.out.println("str3: "+str3);
    }
}

程序运行结果:

在这里插入图片描述
被双引号修饰的value值,其中的特殊字符会发挥自身的用途;

配置信息读取

package com.example.demo;

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

@RestController
@RequestMapping("/user")
public class UserController {

    @Value("${mykey.key1}")
    private String myKey;

    @RequestMapping("/key1")
    public String key1(){

        return "key1="+myKey;
    }
}

在这里插入图片描述
配置信息的读取是借助注解@Value来完成的,同时注解之后的参数格式也有固定格式,只有遵循这种格式,才能读取配置信息成功;

.properties VS .yml

  • properties格式是key=value的键值对的设置方式,yml格式是类似于json格式的树形结构的设置方式,使用冒号+空格的语法规则;
  • properties的配置方法存在数据冗余的问题,yml的配置方式解决了数据冗余的问题;
  • yml支持更多语言,通用性要更好;
  • 两种格式的配置文件在一个项目中同时存在且产生配置冲突时,以properties格式的为主;但为了降低项目的故障率,更好的维护项目,建议采用统一的配置文件格式,以避免出现各种问题;

over!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外包干了3年,技术水平倒退明显。。。

前言 简单说下我的情况吧!普通本科的科班生,19年的时候通过校招进了一家小自研,工资还凑合,在里面带了一年多,公司没了,疫情期间找工作很麻烦,后面就开始自己近3年的外包生涯,这三年…

k8s探针

k8s的pod重启策略 1,Deploy 的yaml文件只能是always。Pod的 yaml三种模式都可以。 2,OnFailure:只有状态码非0才会重启。正常状态不重启的。 3,Never:正常退出和非正常退出都不重启。容器退出了,pod才会…

cmake工程不能命中断点解决方法

set_target_properties(s7plus PROPERTIES COMPILE_FLAGS "/std:clatest /Zc:preprocessor")改为加上 /Zi set_target_properties(s7plus PROPERTIES COMPILE_FLAGS "/std:clatest /Zi /Zc:preprocessor")

LeetCode-Java(29)

29. 两数相除 结果肯定落在dividend上&#xff0c;于是对这个区间每一个数进行二分查找&#xff0c;判断方法就是 while (l < r) {long mid l r 1 >> 1;if (mul(mid, y) < x) {l mid;} else {r mid - 1;}} 其中mul是一个要定义的快速乘法。 完整代码如下 …

Geotrust DV通配符证书保护域名数量

Geotrust是一家知名的SSL证书提供商&#xff0c;旗下有多种类型的SSL数字证书&#xff0c;保护网站数据在传输过程中的安全性和完整性&#xff0c;帮助用户确认其网站的安全。通配符SSL证书是Geotrust颁发的一种可以同时保护多个域名站点的SSL证书。今天就随SSL盾小编了解Geotr…

非隔离BUCK恒流控制芯片SM7307产品特点与典型应用

非隔离BUCK恒流控制芯片SM7307是一款高效、低成本的电源管理芯片&#xff0c;适用于需要宽电压输入和恒流输出的应用场景。以下是该产品的特点详解&#xff1a; 1. 宽电压输入范围&#xff1a;LED驱动芯片SM7307支持85Vac~265Vac的宽电压输入&#xff0c;能够适应各种电源输入…

鸿蒙应用中图片的显示(Image组件)

目录 1、加载图片资源 1.1、存档图类型数据源 a.本地资源 b.网络资源 c.Resource资源 d.媒体库file://data/storage e.base64 1.2、多媒体像素图片 2、显示矢量图 3、添加属性 3.1、设置图片缩放类型 3.2、设置图片重复样式 3.3、设置图片渲染模式 3.4、设置图…

二维码地址门牌管理系统:物业管理的未来趋势

文章目录 前言一、数字化管理与便捷服务二、身份认证与安全保障三、业主便利与贴心服务四、未来发展趋势 前言 在数字化时代&#xff0c;物业管理面临着不断增加的挑战。为了提高管理效率、服务业主&#xff0c;二维码门牌管理系统应运而生。本文将探讨这一新型管理方式&#…

AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(2)案例分享

原作者&#xff1a;擎创科技产品专家 布博士 案例分享 所需要的软件列表 本次案例的实现&#xff0c;全部采用开源或SAAS的产品来提供&#xff0c;并不涉及到私有化部署的软件产品。软件列表如下所示&#xff0c;如何申请apikey请自行研究&#xff0c;在这里不再详细说明&…

Python+PyCharm的安装配置及教程(实用)

python and PyCharm 安装教程可参考&#xff1a;https://blog.csdn.net/wangyuxiang946/article/details/130634049 Pyhon 下载地址&#xff1a;https://www.python.org/downloads/ PyCharm 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindo…

BMS开发之面向对象思想(adbms1818)

借鉴adbms1818的底层驱动代码 前言&#xff1a;adbms1818的主要用途就是不同种类的寄存器里面存储不同的数据&#xff0c;程序员需要通过特定的协议往寄存器里面写入或者读出数据 &#xff08;1&#xff09;定义一个结构体 里面存储了adbms1818的所有寄存器的信息。然后我们看…

手机电脑之间快速传输图片视频文件,不压缩画质、不限制大小的方法!

文件传输功能是日常必备功能&#xff0c;但总有传输工具不得“朕”心—— 想在手机和电脑之间传输稍微大一点的文件&#xff0c;弹出提示“限制多少多少G”&#xff0c;传个5G的视频或文件很平常吧&#xff0c;怎么就实现不了&#xff1f;想要将手机相册的视频和照片转移到电脑…

什么是设备树?

一. 简介 前面只是简单使用过设备树文件&#xff0c;接下来详细谈一谈设备树。掌握设备树是 Linux 驱动开发人员必 备的技能&#xff01; 因为在新版本的 Linux 中&#xff0c;ARM 相关的驱动全部采用了设备树(也有支持老式驱动的&#xff0c;比较少)&#xff0c;最新出的 CP…

Flink Watermark和时间语义

Flink 中的时间语义 时间语义&#xff1a; EventTime&#xff1a;事件创建时间&#xff1b;Ingestion Time&#xff1a;数据进入Flink的时间&#xff1b;Processing Time&#xff1a;执行操作算子的本地系统时间&#xff0c;与机器无关。不同的时间语义有不同的应用场合&#x…

光耀未来 第一届能源电子产业创新大赛太阳能光伏赛道决赛在宜宾举行

1月3日&#xff0c;第一届能源电子产业创新大赛太阳能光伏赛道决赛在宜宾盛大举行&#xff0c;本次比赛吸引了全国范围内的光伏行业顶尖人才和创新团队参与。 为深入贯彻《关于推动能源电子产业发展的指导意见》&#xff0c;推动我国能源电子产业升级&#xff0c;工业和信息化部…

CMake入门教程【核心篇】添加依赖(add_dependencies)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「本文的内容」&#xff1a;CMake入门教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1. 基本用法2. 添加目…

Docker网络模型

Docker容器是虚拟化技术&#xff0c;其使用虚拟化网络技术实现Docker容器主机中运行的容器实例之间的网络互连功能&#xff0c;本文主要描述Docker的网络模型。 Docker架构 如上所示&#xff0c;Docker容器化的架构分为三个部分&#xff0c;其中Docker Host是虚拟化主机系统&a…

JAVA学习专栏

JAVA专栏 Java核心技术 Java核心技术 Java练手算法 Java练手算法 Java数据结构和算法 Java数据结构和算法 Java设计模式 Java设计模式 Java并发编程 Java并发编程 MySQL数据库 MySQL数据库 Java项目管理Maven Java项目管理Maven 项目管理工具gradle 项目管理工具gradle…

leetcode2397. 被列覆盖的最多行数

目录 题目 思路 解题方法 题目 https://leetcode.cn/problems/maximum-rows-covered-by-columns/description/ 给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix &#xff1b;另给你一个整数 numSelect&#xff0c;表示你必须从 matrix 中选择的 不同 列的数量。 …

助力工业生产“智造”,基于YOLOv8全系列模型【n/s/m/l/x】开发构建纺织生产场景下布匹瑕疵检测识别系统

纯粹的工业制造没有办法有长久的发展过程&#xff0c;转制造为全流程全场景的生产智造才是未来最具竞争力的生产场景&#xff0c;在前面的开发实践中我们已经涉足工业生产场景下进行了很多实地的项目开发&#xff0c;如&#xff1a;PCB电路板缺陷检测、焊接缺陷检测、螺母螺钉缺…