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

SpringBoot读取配置文件

目录

  • 一、简介
    • 1、SpringBoot 中常用读取配置方法
    • 2、 @ConfigurationProperties和@Value的区别
  • 二、使用 @ConfigurationProperties 读取配置
  • 三、使用 @Value 读取配置

一、简介

在日常开发使用 SpringBoot 框架时,经常有一些配置信息需要放置到配置文件中,我们需要手动读取这些配置到应用中进行一些逻辑,这里整理了一些常用读取配置的方法,简单介绍一下。

1、SpringBoot 中常用读取配置方法

  • 使用 @ConfigurationProperties 注解读取配置

配置方便,支持赋值复杂类型

  • 使用 @Value 注解读取配置

使用灵活,方便对读取数值进行定制化处理,可赋值给静态化变量

2、 @ConfigurationProperties和@Value的区别

二者区别@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
松散绑定(松散语法)支持不支持
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持
赋值静态化属性据说可以,笔者未成功支持

二、使用 @ConfigurationProperties 读取配置

application.yml配置文件内容:

jiug:name: keffettage: 18school: 淮北师范大学,五河县第二中学technicalList :- name: 驾驶证grade: C1- name: 计算机grade: 二级

使用@ConfigurationProperties对配置属性进行赋值

@Data
@Configuration
@ConfigurationProperties(prefix = "jiug")
public class ConfigJiug {private String name ;// JSR303数据校验@NotNull@Min(0)private int age ;// 默认值private String loc = "中国" ;// listprivate List<String> school ;// list对象private List<Technical> technicalList ;}
@Data
class Technical {private String name;private String grade;
}

要使用JSR 303校验,需要在Spring Boot应用程序的依赖中添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

三、使用 @Value 读取配置

application.yml配置文件内容:

jiug:name: keffettage: 18declaration: 认识世界,school: 淮北师范大学,五河县第二中学

使用 @Value 读取配置文件

@Component
public class ConfigConstant {@Value("${jiug.name}")private String name ;@Value("${jiug.age}")private int age = 24 ;// 设置默认值@Value("${jiug.loc:中国}")private String loc;// 使用 SpEL 表达式@Value("#{configJiug.age > 18 ? 'adult' : 'child'}")private String status;// 赋值到静态变量public static String declaration ;@Value("${jiug.declaration}")public void setDeclaration(String declaration) {ConfigJiug.declaration = declaration;}// listprivate List<String> school ;@Value("${jiug.school}")public void setSchool(String school) {this.school = Arrays.asList(school.split(","));}// list对象 不支持,可以配置json串,然后在set方法中解析}

相关文章:

SpringBoot读取配置文件

目录一、简介1、SpringBoot 中常用读取配置方法2、 ConfigurationProperties和Value的区别二、使用 ConfigurationProperties 读取配置三、使用 Value 读取配置一、简介 在日常开发使用 SpringBoot 框架时&#xff0c;经常有一些配置信息需要放置到配置文件中&#xff0c;我们…...

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

51驱动NRF24L01通信&#xff0c;NRF24L01与TTL转NRF24L01模块通信NRF24L01一、简介二、引脚功能描述程序设计一、对 24L01 的程序编程的基本思路如下&#xff1a;二、Tx 与 Rx 的配置过程1、Tx 模式初始化过程&#xff1a;2、Rx 模式初始化过程&#xff1a;三、基本程序函数通信…...

C++友元

欢迎来观看温柔了岁月.c的博客 目前 设有C学习专栏 C语言项目专栏 数据结构与算法专栏 目前主要更新C学习专栏&#xff0c;C语言项目专栏不定时更新 待C专栏完毕&#xff0c;会陆续更新C项目专栏和数据结构与算法专栏 一周主要三更&#xff0c;星期三&#xff0c;星期五&#x…...

MySQL内置函数

文章目录日期函数字符串函数数学函数其他函数日期函数 获取年月日&#xff1a; mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-02-01 | ---------------- 1 row in set (0.00 sec)获得时分秒&#xff1a; mysql> se…...

mysql数据库之innodb存储引擎架构之内存架构

一、逻辑存储结构 mysql5.5版本开始&#xff0c;默认使用innodb存储引擎&#xff0c;它擅长事务处理&#xff0c;具有崩溃恢复特性&#xff0c;在日常开发中使用非常广泛。 架构图&#xff08;左侧为内存架构&#xff0c;右侧为磁盘架构&#xff09; 二、 内存架构。 1、缓冲…...

Vue:(三十五)路由vue-router

今天&#xff0c;我们开始学习vue中一个很关键的知识点&#xff0c;路由。理解vue的一个插件库&#xff0c;专门用来实现SPA应用单页web应用整个应用只有一个完整的页面点击页面中的导航连接不会刷新页面&#xff0c;只会做页面的局部更新数据需要通过ajax请求获取下来&#xf…...

Dynabook笔记本电脑无法开机怎么重装新系统?

Dynabook笔记本电脑无法开机怎么重装新系统&#xff1f;有用户使用Dynabook笔记本电脑出现了无法正常开机的情况。遇到这样的问题是我们的电脑系统出现了损坏&#xff0c;可以尝试进行系统修复。如果无法修复的话&#xff0c;就需要进行系统重装了。以下为大家带来Dynabook笔记…...

React Native基础知识点

1、组件 与react编写web应用不同&#xff0c;不是使用div、span等标签。而是使用RN官方提供的组件&#xff0c;如View、Text等组件来搭建页面 2、宽高 React Native 中的尺寸都是无单位的&#xff0c;表示的是与设备像素密度无关的逻辑像素点。默认值为auto <View style{{…...

nginx 平滑升级

背景介绍 因为一些原因&#xff0c;比如说 Nginx 发现漏洞、应用一些新的模块等等&#xff0c;想对 Nginx 的版本进行更新&#xff0c;最简单的做法就是停止当前的 Nginx 服务&#xff0c;然后开启新的 Nginx 服务。但是这样会导致在一段时间内&#xff0c;用户是无法访问服务…...

数据结构——链表OJ题目讲解(2)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年3月10日 内容&#xff1a;数据结构链表OJ题目讲解 来源&#xff1a;牛客网和力扣 目录 前言&#xff1a; 刷题&#xff1a; 1.反转链表&#xff1a; 1.改变指向的解法&#xff1a; 2.取头结点插入到新链表&#xff1a; …...

GitHub上线重量级分布式事务笔记,再也不怕面试官问分布式了

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说&#xff0c;就是一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务器上&#xff0c;且属于不同的应用&#xff0c;分布式…...

C++语法规则1(C++面向对象 )

C面向对象 面向对象的三大特征是继承&#xff0c;多态和封装&#xff0c;C重面向对象重要的就是这些&#xff0c;我们下面通过一些简单的实例加以理解&#xff0c;从这小节开始&#xff0c;我们将开启新的编程旅途。与 C 语言编程的思想完全不同了&#xff0c;这就是 C!理解概…...

Web漏洞-CSRF漏洞

CSRF漏洞介绍&#xff1a;CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;中文名称&#xff1a;跨站请求伪造&#xff0c;是一种劫持用户在当前已登录的Web应用程序上执行非本意操作一种攻击.原理&#xff1a;攻击者利用目标用户的身份&#xff0c;执行某…...

Python3-面向对象

Python3 面向对象 Python从设计之初就已经是一门面向对象的语言&#xff0c;正因为如此&#xff0c;在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言&#xff0c;那你可能需要先了解一些面向对象…...

拐点!新能源车交付均价首次「低于」燃油车,智能电动成新爆点

2023年开局&#xff0c;随着特斯拉打响新能源汽车市场的「价格战」首炮&#xff0c;除部分燃油车品牌&#xff08;仍依赖自身多年的用户和品牌积累的溢价能力&#xff09;没有跟进之外&#xff0c;几乎所有的新能源车型都在进行车型价格的下调。 而数据也在反映市场的拐点即将来…...

JavaScript String 字符串对象实例合集

文章目录JavaScript String 字符串对象实例合集返回字符串的长度为字符串添加样式返回字符串中指定文本首次出现的位置 - indexOf()方法查找字符串中特定的字符&#xff0c;若找到&#xff0c;则返回该字符 - match() 方法替换字符串中的字符 - replace()JavaScript String 字符…...

实习生培养计划

部门最近入职了实习生&#xff0c;为了更好的帮助实习生完成由学生向职业人的转变&#xff0c;并尽快融入企业稳步成长&#xff0c;现提出实习生培养计划&#xff0c;具体方案如下&#xff1a; 1、方案目的 1、使实习生快速转换角色与心态&#xff0c;适应从校园到企业的坏境…...

【服务器管理】Wordpress服务器内存占用太高(优化方案详解)

简述 在刚刚配置完服务器之后&#xff0c;想着试一试wordpress这个功能&#xff0c;结果打开服务器后台&#xff0c;发现本来就不多的内存被占用了一大半。 我真的服了&#xff0c;我还啥都没干呢&#xff0c;就这么多的内存占用&#xff0c;那之后我开始弄了还得了。因此有必…...

【ECCV 2022】76小时动捕,最大规模数字人多模态数据集开源

随着元宇宙的火爆以及数字人建模技术的商业化&#xff0c;AI 数字人驱动算法&#xff0c;作为数字人动画技术链的下一关键环节&#xff0c;获得了学界和工业界越来越广泛的兴趣和关注。其中谈话动作生成 &#xff08;由声音等控制信号生成肢体和手部动作&#xff09;由于可以降…...

联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建

自2022年印发《“十四五”数字经济发展规划》以来&#xff0c;我国数字化发展进入快车道。数据库作为数据存储与计算的基础软件&#xff0c;对筑牢数字经济底座至关重要。服务器是承载数据的重要载体&#xff0c;在数据库性能可以通过扩容而无上限提升的情况下&#xff0c;数据…...

Android 单元测试问题总结(Robolectric+JUnit)

代码单元测试问题总结&#xff1a; 1、测试类中引用第三方jar包类报错 问题原因&#xff1a; 测试的库中没有包含第三方jar包。 解决办法&#xff1a; 在app下gradle中加入第三方jar包配置&#xff1a; testImplementation files(‘libs/third.jar’) 2、自定义Shadow类不生…...

专项攻克——二叉树

文章目录一、二叉树定义、分类二、二叉树的存储结构三、创建二叉树四、遍历方式一、二叉树定义、分类 二叉树&#xff1a;是N个结点的有序集合&#xff0c;该集合或者为空集&#xff0c;或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树的二叉树组成。每个…...

PACS系统源码 PACS源码 三维重建PACS源码

一、系统概述&#xff1a; ​基于VC MSSQL开发的一套三甲医院医学影像PACS系统源码&#xff0c;集成3D影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大&#xff0c;代码…...

利用Mysql存储过程造百万级数据

1.准备工作&#xff08;1&#xff09;由于是使用存储过程&#xff0c;mysql从5.0版开始支持存储过程&#xff0c;那么需要mysql的版本在5.0或者以上。如何查看mysql的版本&#xff0c;使用下面sql语句查看&#xff1a;&#xff08;2&#xff09;创建两张表&#xff0c;表结构一…...

Vue2组件之间的传值通信

父子组件Vue中常见的是父与子组件间的通信&#xff0c;所要用到的关键字段是props和$emit。props接受父组件传给子组件信息的字段&#xff0c;它的类型&#xff1a;Array<string> | Object;详细解释可以参考https://cn.vuejs.org/v2/api/#props$emit由子组件触发事件向上…...

Spring Boot官方例子《Developing Your First Spring Boot Application》无法运行

官方的第一个例子就卡住了&#xff1a; https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started.first-application 按照要求&#xff0c;一步一步走&#xff1a; 查看Java版本和MVN版本&#xff1a; $ java -version openjdk version &quo…...

数据结构(3)— 线性表之顺序存储详解介绍(含代码)

&#xff08;1&#xff09;博客代码在数据结构代码---GitHub仓库&#xff1b;线性表介绍线性表的基础概念&#xff08;1&#xff09;甲骨文表示&#xff1a;线性表是零个或多个数据元素的有限序列。&#xff08;2&#xff09;线性表&#xff0c;顾名思义&#xff0c;就是说这个…...

ChatGPT正当时,让我们一起深耕智能内容生成和智能内容增强领域

ChatGPT以其强大的信息整合和对话能力惊艳了全球&#xff0c;在自然语言处理上面表现出了惊人的能力。很多人都预测 2023 年将是 AI 生成之年&#xff0c;也许我们将迎来继农业革命、工业革命以来的第三种通用技术的普及。 信必优长期专注于人工智能领域&#xff0c;拥有产品研…...

天梯赛训练L1-019 (谁先倒)

目录 1、L1-019 谁先倒 2、如果帮到大家&#xff0c;请大家一键三连&#xff01;&#xff01;&#xff01; 3、读书吧&#xff0c;在落幕无光时找到方向&#xff01;&#xff01;&#xff01; 1、L1-019 谁先倒 分数 15 题目通道 划拳是古老中国酒文化的一个有趣的组成部分…...

MySQL DQL语句基础(一)

目录 DQL 基本语法 基础查询 1、查询多个字段 2、字段设置别名 3、去除重复记录 条件查询 语法 条件 案例 聚合函数 常见的聚合函数 语法 DQL DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记录。 基…...

哪里找人做网站/百度热议

37 什么时候使用内部临时表 前面介绍了sort buffer&#xff0c;内存临时表和join buffer&#xff0c;这3个数据结构都是用来存放语句执行过程中的中间数据&#xff0c;以辅助sql语句的执行的&#xff0c;在排序的时候用sort buffer&#xff0c;在使用join语句的时候使用了join_…...

阿里巴巴1688网官网/安卓优化大师最新版

1 问题&#xff1a; PPT打开时弹出由于某种原因powerpoint无法加载…MathType.ppam加载项问题的解决。如下图所示 确定之后又可以正常打开。 2 具体原因 之前安装的MathType卸载不干净&#xff0c;在注册表里面有残留。 3 解决办法 开始运行&#xff0c;输入regedit &…...

wordpress 插件 教程/seo排名资源

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所…...

成都网站建设小程序/长春seo外包

本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下一、CNN模型结构输入层&#xff1a;Mnist数据集(28*28)第一层卷积&#xff1a;感受视野5*5&#xff0c;步长为1&#xff0c;卷积核&#xff1a;32个第一…...

wordpress对接微信登录/化妆品营销推广方案

Mysql 环境查询 1&#xff0c; 查看全部的引擎 a) Show engines 或者是进入到information_schama里面去查看ENGINES表 2&#xff0c; 查看当前用户 a) Select user() 能够查看当前用 b) Show full processlist查看当前用的操作 3&#xff0c; 查看环境变量 a) Show variables 查…...

网络营销产品的特点/seo网站收录工具

为了更好地保障消费者的合法权益&#xff0c;银监会和保监会提出了要求&#xff0c;在银行、保险从业人员销售理财产品或代理其他机构销售产品时&#xff0c;同期进行录音录像&#xff0c;确保销售人员按程序、按规定介绍产品&#xff0c;以便购买者更清楚地了解产品的性质和自…...