当前位置: 首页 > news >正文

Spring-Boot基础--yaml

目录

Spring-Boot配置文件

注意:

YAML简介

YAML基础语法

YAML:数据格式

YAML文件读取配置内容

逐个注入

批量注入

@ConfigurationProperties 和@value的区别

Spring-Boot配置文件

Spring-Boot中不用编写.xml文件,但是spring-Boot中还是存在.properties文件,同时还有.yml(.yaml)文件

application.properties 文件书写规则

person.name=万某

application.yml(yaml) 文件书写规则

person:name: 万某
#不同层级之间要有缩进
#冒号后要有空格

注意:

默认配置文件名称:application

Spring-Boot中可以同时存在 三类文件,优先级为:properties > yml > yaml

YAML简介

YAML文件相对传统的.xml文件更能直观的展示数据序列化格式,更加简洁。所以在Spring-Boot中一般使用.yml(.yaml)

YAML基础语法

  1. 大小写敏感
  2. 数据值前边必须有空格,作为分隔符
  3. 使用缩进表示层级关系
  4. 缩进时使用Tab键
  5. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  6. "#"表示注释,从这个字符一直到行尾,都会被解析器忽略。

YAML:数据格式

字面量:普通值 [ 数字,布尔值,字符串]

boolean: TRUE               #TRUE,true,True,FALSE,false,False均可
float: 3.14                 #6.8523015e+5 #支持科学计数法
int: 123                    #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
string: HelloWorld			#字符串可以直接书写

数组:一组按次序排列的值( List、set )

address:- beijing- shanghai# 一行内写法
commpany: [阿里巴巴,华为,腾讯,字节跳动]

对象、Map(键值对)

person:name: 万某# 行内写法
person: {name: wangzhuo}#对象数组格式一
users:- name: Tomage: 4- name: Jerryage: 5
#对象数组缩略格式
users2: [ { name:Tom,age:4 },{ name:Jerry,age:5 } ]

YAML:参数引用

name: 万某person:name: xuelaoshi pet: ${name}       # 引用上边定义的name值name: xuls${random.uuid}        # 配置文件占位符,随机uuidname: ${person.name}_帅

YAML文件读取配置内容

推荐两种方式

逐个注入

在Controller类下给属性分别以@Value注解的方式分别赋值,@Value里的${yaml变量名}。

获取对象就对象.变量名。

获取数组就是使用索引的方式数组[0],在这里表示数组中的第一个值(上海)。

具体代码如下:录后复制

package com.imust.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@Value("${name}")private String name;
//    获取对象@Value("${person.name}")private String person_name;@Value("${person.age}")private int person_age;//    获取数组@Value("${address[0]}")private String address1;@Value("${address[1]}")private String address2;@RequestMapping("/hello")public String hello(){System.out.println(name);System.out.println(person_name);System.out.println(person_age);System.out.println(address1);System.out.println(address2);System.out.println("========================");return "Hello,Spring Boot!";}
}

批量注入

yml文件中写入要批量导入的数据

在person类中添加ConfigurationProperties注解,和person2主名称一致

即可

@ConfigurationProperties 和@value的区别

  1. 用途和来源:‌

@Value主要用于从简单的属性文件中注入值,‌如application.propertiesapplication.yml,‌而@ConfigurationProperties则用于从带有嵌套属性的复杂配置文件中注入值。‌

  1. 类型安全性:‌

@Value不支持类型安全,‌需要进行手动类型转换,‌而@ConfigurationProperties支持类型安全,‌通过自动绑定和类型转换实现。‌

  1. 复杂性:‌

@Value适用于简单的属性注入场景,‌而@ConfigurationProperties适用于复杂的配置文件场景,‌能够处理嵌套属性、‌列表、‌集合等。‌

  1. 自定义属性:‌

@Value不支持自定义属性,‌而@ConfigurationProperties支持自定义属性,‌可以通过prefix、‌ignoreInvalidFields等参数进行配置。‌

  1. 松散绑定和SpEL支持:‌

@ConfigurationProperties支持松散绑定,‌允许在配置文件中使用不同的命名约定(‌如使用下划线、‌驼峰命名法等)‌,‌而@Value不支持松散绑定。‌此外,‌@ConfigurationProperties不支持SpEL表达式,‌而@Value支持。‌

  1. JSR303数据校验和复杂类型封装:‌

@ConfigurationProperties支持JSR303数据校验,‌而@Value不支持。‌同时,‌@ConfigurationProperties支持复杂类型的封装(‌如map)‌,‌而@Value不支持。‌

相关文章:

Spring-Boot基础--yaml

目录 Spring-Boot配置文件 注意: YAML简介 YAML基础语法 YAML:数据格式 YAML文件读取配置内容 逐个注入 批量注入 ConfigurationProperties 和value的区别 Spring-Boot配置文件 Spring-Boot中不用编写.xml文件,但是spring-Boot中还是存在.prope…...

C/C++蓝屏整人代码

文章目录 📒程序效果 📒具体步骤 1.隐藏任务栏 2.调整cmd窗口大小 3.调整cmd窗口屏幕颜色 4.完整代码 📒代码详解 🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主&a…...

【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0_r1

0. 环境准备 Ubuntu 16.04 LTS(预留至少95GB磁盘空间,实测占94.2GB) Pixel 2 XL 要买欧版的,不要美版的。 欧版能解锁BootLoader、能刷机。 美版IMEI里一般带“v”或者"version",这样不能解锁BootLoader、…...

HBuilder X3.4版本中使用uni-app自定义组件

HBuilder X3.4版本中使用uni-app自定义组件 这是我的小程序页面结构 方式一&#xff1a;导入components 1.创建componets文件&#xff0c;并编写你的组件页面 <template><view class"my-search-container"><!-- 使用 view 组件模拟 input 输入框的样…...

PHP基础语法(一)

一、初步语法 1、PHP代码标记&#xff1a;以 <?php 开始&#xff0c;以 ?> 结束&#xff1b; 2、PHP注释&#xff1a;行注释&#xff1a;//&#xff08;双斜杠&#xff09;或# 块注释&#xff1a;/* */ 3、PHP语句分隔符&#xff1a; 1&#xff09;在PHP中&#…...

Python项目打包与依赖管理指南

在Python开发中&#xff0c;python文件需要在安装有python解释器的计算机的电脑上才能运行&#xff0c;但是在工作时&#xff0c;我们需要给客户介绍演示项目功能时并不一定可以条件安装解释器&#xff0c;而且这样做非常不方便。这时候我们可以打包项目&#xff0c;用于给客户…...

矿产资源潜力预测不确定性评价

研究目的&#xff1a; 不确定性评估&#xff1a; 到底什么叫不确定性&#xff0c;简单来说就是某区域内的矿产资源量&#xff0c;并不确定到底有多少&#xff0c;你需要给出一个评估或者分布。 研究方法&#xff1a; 1.以模糊集来表示某些量&#xff1a; 关于什么是模糊集&am…...

食堂采购系统开发:从需求分析到上线实施的完整指南

本篇文章&#xff0c;笔者将详细介绍食堂采购系统从需求分析到上线实施的完整过程&#xff0c;旨在为开发团队和管理者提供一个系统化的指南。 一、需求分析 1.用户需求 常见的需求包括&#xff1a; -采购计划管理 -供应商管理 -库存管理 -成本控制 -报表生成 2.系统功…...

C++ 数据结构

C 数据结构 引言 数据结构是计算机科学中的一个核心概念&#xff0c;它涉及到如何在计算机中组织和存储数据&#xff0c;以便高效地进行数据访问和修改。C作为一种高效的编程语言&#xff0c;提供了丰富的内置数据类型和库&#xff0c;支持各种复杂的数据结构实现。本文将探讨…...

Elasticsearch:评估搜索相关性 - 第 1 部分

作者&#xff1a;来自 Elastic Thanos Papaoikonomou, Thomas Veasey 这是一系列博客文章中的第一篇&#xff0c;讨论如何在更好地理解 BEIR 基准的背景下考虑评估你自己的搜索系统。我们将介绍具体的技巧和技术&#xff0c;以便在更好地理解 BEIR 的背景下改进你的搜索评估流程…...

超声波清洗机哪款好用?保姆级教学,教你手把手挑选适合自己的超声波清洗机

提及超声波清洗机&#xff0c;大家都不陌生&#xff0c;尤其是佩戴眼镜的小伙伴&#xff0c;眼镜的镜片长时间不清洁容易模糊不清&#xff0c;而超声波清洗机的出现&#xff0c;可以轻松清洗还不会损坏镜片&#xff0c;备受眼镜党喜爱。但由于现在市面上的超声波清洗机的款式太…...

vscode常用组件

1.vue-helper 启用后点击右下角注册&#xff0c;可以通过vue组件点击到源码里面 2.【Auto Close Tag】和【Auto Rename Tag】 3.setting---Auto Reveal Exclude vscode跳转node_modules下文件&#xff0c;没有切换定位到左侧菜单目录> 打开VSCode的setting配置&#xff…...

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址&#xff1a;https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字&#xff0c;项目路径&#xff0c;选择maven,点击下面的创建 运行项目 …...

华为“铁三角模式”在数据类项目中的应用和价值

引言&#xff1a;随着信息技术的飞速发展&#xff0c;企业纷纷踏上数字化转型的道路&#xff0c;希望通过数据分析和智能决策来提升企业竞争力。在这一过程中&#xff0c;数据类项目成为关键&#xff0c;它们旨在构建高效的数据治理和分析平台&#xff0c;为企业决策提供有力支…...

P1-AI产品经理--九五小庞

产品经理的定位 AI基于现有业务挖掘AI应用场景&#xff0c;服务提供商选择及算法定制等&#xff0c;配合已有产品完成整体产品工工资基于从事医疗行业的考虑&#xff0c;我们走的应该是AI产品经理&#xff08;软件型&#xff09; AI产品经理&#xff08;行业型&#xff09; AI…...

PHP手边酒店多商户版平台小程序系统源码

&#x1f3e8;【旅行新宠】手边酒店多商户版小程序&#xff0c;一键解锁住宿新体验&#xff01;&#x1f6cc; &#x1f308;【开篇&#xff1a;旅行新伴侣&#xff0c;尽在掌握】&#x1f308; 还在为旅行中的住宿选择而纠结吗&#xff1f;是时候告别繁琐的搜索和比价过程&a…...

计算机视觉7 kag比赛

Kaggle 是一个非常知名的数据竞赛平台&#xff0c;提供了许多计算机视觉相关的竞赛项目&#xff0c;以下是一些在 Kaggle 上可能会遇到的计算机视觉项目类型及相关的简单介绍和示例&#xff1a; 图像分类&#xff1a;给定一组图像&#xff0c;任务是将它们分类到不同的类别中。…...

Go 协程通道使用注意

目录 关闭channel 引入 不关闭通道是有风险的&#xff0c;主要存在两条&#xff1a; 如何优雅的关闭&#xff1f; 1.只有一个发送者 2.多个发送者 判断通道是否关闭 有缓存和无缓存的通道有什么区别&#xff1f; 错误的关闭通道 关闭channel close(chan)&#xff1a;关…...

React基础学习-Day04

React基础学习-Day04 常见的钩子函数及基础使用方式 1.useState useState 是 React 的一个 Hook&#xff0c;用于在函数组件中添加状态。它返回一个状态变量和一个更新该状态的函数。与类组件的 this.state 和 this.setState 相对应&#xff0c;useState 让函数组件也能拥有…...

python爬虫获取网易云音乐评论歌词以及歌曲地址

python爬虫获取网易云音乐评论歌词以及歌曲地址 一.寻找数据接口二.对负载分析三.寻找参数加密过程1.首先找到评论的请求包并找到发起程序2.寻找js加密的代码 四.扣取js的加密源码1.加密函数参数分析①.JSON.stringify(i0x)②bse6Y(["流泪", "强"])③bse6Y…...

中间件的理解

内容来源于学习网站整理。【一看就会】什么是前端开发的中间件&#xff1f;_哔哩哔哩_bilibili 每日八股文~白话说mq&#xff0c;消息中间件_哔哩哔哩_bilibili 例如&#xff1a; 1&#xff09;两个人打电话&#xff0c;中间的通信网络就是中间件。 2&#xff09;菜鸟驿站&…...

django实现用户的注册、登录、注销功能

创建django项目的步骤&#xff1a;Django项目的创建步骤-CSDN博客 一、前置工作 配置数据库&#xff0c;设置数据库引擎为mysql 1、在settings文件中找到DATABASES, 配置以下内容 DATABASES {"default": {ENGINE: django.db.backends.mysql, # 数据库引擎NAME: dja…...

【JAVA 常用API】数据库字段存储JSON格式数据,JAVA中如何将List<Entity>或者对象实体转换为字符串

在Java中&#xff0c;可以使用第三方库如Jackson或Gson来进行JSON的转换。这些库提供了将Java对象转换为JSON字符串的方法。 一&#xff1a;Gson API转Json Getter Setter NoArgsConstructor AllArgsConstructor ToString Builder public class Person {private String name;p…...

AI算不出9.11和9.9哪个大?六家大模型厂商总结了这些原因

大模型“答对”或“答错”其实是个概率问题。关于“9.11和9.9哪个大”&#xff0c;这样一道小学生难度的数学题难倒了一众海内外AI大模型。7月17日&#xff0c;第一财经报道了国内外“12个大模型8个都会答错”这道题的现象&#xff0c;大模型的数学能力引发讨论。 “从技术人员…...

MacBook电脑远程连接Linux系统的服务器方法

一、问题简介 Windows 操作系统的电脑可使用Xshell等功能强大的远程连接软件。通过连接软件&#xff0c;用户可以在一台电脑上访问并控制另一台远程计算机。这对于远程技术支持、远程办公等场景非常有用。但是MacBook电脑的macOS无法使用Xshell。 在Mac上远程连接到Windows服…...

CSS-0_3 CSS和单位

文章目录 CSS的值和单位属性值长度单位CSS和绝对单位CSS和相对单位百分比em & rem视口 颜色单位 碎碎念 CSS的值和单位 我们知道&#xff0c;CSS是由属性和属性值所组成的表 随着CSS的发展&#xff0c;属性不说几千也有几百&#xff0c;我从来不支持去背诵所有的可能性。…...

【代码随想录|贪心算法 455. 分发饼干 376. 摆动序列 53. 最大子数组和】

代码随想录|贪心算法 455. 分发饼干 一、455. 分发饼干1.代码2.问题 二、376. 摆动序列1.代码 三、53. 最大子数组和1.代码 总结 python 一、455. 分发饼干 455. 分发饼干 1.代码 代码如下&#xff08;示例&#xff09;&#xff1a; class Solution:def findContentChildr…...

swift小知识点(二)

1、 Swift 枚举 Swift 中使用 enum 关键词来创建枚举并且把它们的整个定义放在一对大括号内&#xff1a; enum enumname {// 枚举定义放在这里 } 如下事例&#xff1a; // 定义枚举 enum DaysofaWeek {case Sundaycase Mondaycase TUESDAYcase WEDNESDAYcase THURSDAYcase…...

机器人产业发展格局多元化,创业公司突破瓶颈需多维施策

当前&#xff0c;机器人产业的发展格局呈现出多元化、快速增长和技术不断创新的特点。从全球视角来看&#xff0c;机器人市场持续增长&#xff0c;预计到2026年全球人形机器人市场规模将超过20亿美元&#xff0c;到2030年有望突破200亿美元&#xff0c;显示出巨大的市场潜力和发…...

接口测试JMeter-1.接口测试初识

第一章 接口测试初识 1. 接口测试理论基础 “接口测试”一个让人觉得非常高大上的名词&#xff0c;特别是对于刚入门的测试同学而言。随着测试技术不断的深化&#xff0c;“接口测试”出现在我们视野中的频次越来越高。那么接口测试到底是如何做的&#xff1f;接口测试的优势又…...

网站怎么做商家定位/外贸网站搭建推广

把json字符串&#xff0c;变成json对象。很简单的就可以获取它的key 首先需要引入jar包 json-lib-2.4-jdk15.jar json包依赖以下几个包。 ezmorph-1.0.3.jar commons-logging.jar commons-lang-2.5.jar commons-collections-3.1.jar commons-beanutils-1.7.0.jar 剩…...

郑州建设网站企业定制/品牌推广方案

将获取到的时间转换成“yyyy-MM-dd hh:mm:ss”格式 var time new Date();//或者获取的时间格式为"2018-09-27T05:52:10.7090000"时 function formateTime(time) {var d new Date(time);var times d.getFullYear() - (d.getMonth() 1) - d.getDate() d.get…...

响应式的网站建设一个多少钱/业务推广方式有哪些

端口安全 可以将端口学习MAC地址的数量做出限制 可以限制哪些mac地址可以接入本端口 SW3(config)#int e0/0 SW3(config-if)#switchport mode access 注意&#xff1a; 动态端口不允许配置端口安全&#xff0c;若产生违规行为&#xff0c;默认将端口放入 err-disable 状态&#…...

网龙网络公司官网/搜外seo

卜算子咏梅——梦辽庭院雪初融&#xff0c;红蕊琼枝绽。一任寒霜落玉肌&#xff0c;娇色春愁断。雨瑞嫩芽舒&#xff0c;风暖群芳遍。默默花残叶盛时&#xff0c;已是春晖灿。庚辰年冬月十八转载于:https://blog.51cto.com/mengliao/465307...

重庆外贸网站建设公司排名/免费推广引流app

今天我们来聊一聊如何通过提高商品平均停留时长、降低详情页跳出率和优化人群标签来提高产品转化率。今天我们主要说一下平均停留时间和详情页跳出率。 定义&#xff1a; 商品平均停留时长&#xff1a; 统计日期内&#xff0c;来访您店铺商品的所有访客总的停留时长/商品访客…...

乌鲁木齐市建设局网站/上海公布最新情况

1.网络故障需按照协议层次进行分层诊断&#xff0c;找出故障原因并进行相应处理。查看路由器的端ISI状态、协议建立状态和EIA状态属于(36)诊断。 A.物理层 B.数据链路层 C.网络层 D.传输层 2.某公司总部与各分支机构之间需要传输大量的数据&#xff0c;并要求在保障数据安全的…...