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

Spring Boot 注解探秘:常用配置值读取注解的魔力

在 Spring Boot 应用开发中,我们会常常借助Apollo,Spring Cloud Config等配置中心来集中管理配置信息,在拥有配置信息之后,高效且准确地读取这些配置信息无疑是极为关键的一环。今天我们就来介绍几个常用的用于配置值读取的注解。

@Value注解

@Value注解是 Spring 中一种非常方便的用于注入配置值的方式,支持基本数据类型。

public class Demo1{@Value("${url}")private String url;@Value("${gray.switch:true}")private boolean graySwitch;}

也支持数组以及列表类型。

    @Value("${publish.id.array}")private int[] publishId;@Value("${employee.list}")private List<String> employee;

这里补充一种场景,假如apollo服务端配置了key为url,  value为http://wuai.test.com。

本地变量给了默认值。

    @Value("${url:http://wuai.test1.com}")private String url;

yml给了默认值。

url: "http://wuai.test2.com"

那么在应用启动的时候读取的url的值是哪个呢? http://wuai.test.com。

如果服务端配置没有url,那么读取到的url是http://wuai.test1.com。本地变量没有默认值,读取到的url是http://wuai.test2.com

@ApolloJsonValue注解

@ApolloJsonValue是一个特定于 Apollo 配置中心的注解,它主要用于从 Apollo 配置中心读取以 JSON 格式存储的配置内容,并将其自动反序列化为 Java 对象。如,

public class User{private String name;private String sex;private Integer age;
}public class Demo2{@ApolloJsonValue("${user.config}")private User user;
}

以下是apollo配置。

@ConfigurationProperties 注解

@ConfigurationProperties注解是一个非常有用的工具,常用于将外部配置属性绑定到 Java 对象。

@Component
@ConfigurationProperties(prefix = "event.listener")
public class EventListenerConfig {private boolean enable;private List<String> events;}

@ConfigurationProperties注解还支持嵌套对象,如。

@Component
@ConfigurationProperties(prefix = "event")
public class EventConfig {private Object obj;@Component@ConfigurationProperties(prefix = "event.teller")public class EventTellerConfig {private boolean enable;private List<String> events;}}

相关文章:

Spring Boot 注解探秘:常用配置值读取注解的魔力

在 Spring Boot 应用开发中&#xff0c;我们会常常借助Apollo&#xff0c;Spring Cloud Config等配置中心来集中管理配置信息&#xff0c;在拥有配置信息之后&#xff0c;高效且准确地读取这些配置信息无疑是极为关键的一环。今天我们就来介绍几个常用的用于配置值读取的注解。…...

Ps初步使用教程

1.画面快捷键 Ctrl鼠标滚轮&#xff1a;画面左右移动 Shift鼠标滚轮&#xff1a;画面上下快速移动&#xff08;不加Shift正常速度移动&#xff09; Alt鼠标滚轮&#xff1a;画面大小缩放 2.工具快捷键 ShiftG&#xff1a;渐变、油漆桶、3D材质施放 切换 CtrlO&#xff1a…...

远程连接Hiveserver2服务

目录 1.修改 core-site.xml 和 hive-site.xml 的配置文件 2.启动HiveServer2服务 3.启动Beeline工具连接Hiveserver2服务 4.利用IDEA工具连接Hiveserver2服务 完成Hive本地模式安装后&#xff0c;可以启动hiveserver2服务进行远程连接和操作Hive。 1.修改 core-site.xml …...

PDF样本图册转换为一个链接,随时打开无需印刷

想象一下&#xff0c;您手中有一本厚重的样本图册&#xff0c;里面包含了丰富多样的内容&#xff0c;如产品介绍、项目方案、学术论文等。在过去&#xff0c;您需要逐一翻阅、筛选&#xff0c;甚至为了便于查看&#xff0c;不得不将其印刷出来。如今&#xff0c;借助先进的数字…...

自己动手实现mybatis的底层框架(不用动态代理直接用执行器、用动态代理自己实现。图文分析!)

目录 一.原生mybits框架图分析 自己实现Mybatis框架的分析 两种框架操作数据库的方法&#xff1a; 二.搭建开发环境 1.先创建一个maven项目 2.加入依赖(mysql dom4j junit lombok) 三.mybatis框架的设计思路 具体实现过程 3.1实现任务阶段 1- 完成读取配置文件&#x…...

项目日志——日志落地模块的设计、实现、测试

文章目录 日志落地模块设计实现扩展实现测试 日志落地模块 设计 功能是&#xff0c;将格式化完成后的日志消息字符串&#xff0c;输出到指定的位置 支持将日志落地到不同的位置 标准输出指定文件滚动文件 滚动文件按照时间或者大小进行滚动切换&#xff0c;可以按照天数对…...

CTK框架(七):事件监听

目录 1.概述 2.监听接口 3.具体实现 1.概述 CTK&#xff08;Common Toolkit&#xff09;框架中的事件监听机制是一个重要的功能&#xff0c;它允许开发者在特定事件发生时接收到通知并执行相应的操作。CTK框架主要支持三种类型的事件监听&#xff1a;框架事件、插件事件和服…...

一区霜冰算法+双向深度学习模型+注意力机制!RIME-BiTCN-BiGRU-Attention

一区霜冰算法双向深度学习模型注意力机制&#xff01;RIME-BiTCN-BiGRU-Attention 目录 一区霜冰算法双向深度学习模型注意力机制&#xff01;RIME-BiTCN-BiGRU-Attention效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现RIME-BiTCN-BiGRU-Attention霜冰算法…...

C语言 | Leetcode C语言题解之第396题旋转函数

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int maxRotateFunction(int* nums, int numsSize){int f 0, numSum 0;for (int i 0; i < numsSize; i) {f i * nums[i];numSum nums[i];}int res f;for (int i numsSize - 1; i &g…...

利士策分享,克服生活中的困难:走好勇攀高峰的每一步

利士策分享&#xff0c;克服生活中的困难&#xff1a;走好勇攀高峰的每一步 在这个纷繁复杂的世界里&#xff0c;每个人都是自己生命旅程中的行者&#xff0c;而生活&#xff0c;则是一条既铺满鲜花又布满荆棘的道路。 我们或许会在某个清晨醒来&#xff0c;发现自己正站在一座…...

PurchasereturnController

目录 1、 PurchasereturnController 1.1、 反审核退货单 1.1.1、 //配件ID 1.1.2、 //配件编码 1.1.3、 //修改后仓库 1.1.4、 //修改配件信息表库存量 PurchasereturnController using QXQPS.Models; using QXQPS.Vo; using System; using System.Collection…...

mysql 学习笔记 八

总结 自动提交 查看自动提交状态&#xff1a;SELECT AUTOCOMMIT &#xff1b; 设置自动提交状态&#xff1a;SET AUTOCOMMIT 0 。 手动提交 AUTOCOMMIT 0 时&#xff0c;使用 COMMIT 命令提交事务。 事务回滚 AUTOCOMMIT 0 时&#xff0c;使用 ROLLBACK 命令回滚事务。 …...

反序列化漏洞练习2

拿到题目&#xff0c;发现目标是获得flag.php的内容,且sis中admin和passwd等于sis2407时会输出fag的内容 根据源码编写序列化代码 <?php error_reporting(0); class sis{public $admin;public $passwd;public function __construct(){$this->admin "sis2407"…...

基于SpringBoot的社区医院管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的社团管理系统【附源码文档】、…...

YOLOv8安装配置教程(Windows版)

YOLOv8安装配置教程&#xff08;Windows版&#xff09; 简介&#xff1a;最近由于选择了人工智能方向的专业选修课&#xff0c;课程需要安装配置YOLOv8&#xff0c;经过查阅各种资料后才发现&#xff0c;许多教程都比较老旧&#xff0c;并且文件位置也发生了变化&#xff0c;所…...

Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令等的介绍

文章目录 前言一、Linux的历史二、版本三、Linux的环境安装1. 腾讯云服务器的申请2. xshell的安装与使用 四、 简单学习4个基本的Linux指令1. ls2. pwd3. mkdir4. cd 总结 前言 Linux的历史&#xff0c;版本&#xff0c;Linux的环境安装、简单学习4个基本的Linux指令等的介绍 …...

【论文阅读】01-Survey on Temporal Knowledge Graph

原文名称&#xff1a;Survey on Temporal Knowledge Graph 1 Introduction 目前有两种方法:基于距离模型的嵌入变换方法和基于语义匹配模型的双线性模型。它们的思想都是将包含实体和关系的知识图谱嵌入到连续的低纬度实向量空间中 时间知识图的推理有两种&#xff0c;第一种是…...

【AIGC】InstructPixPix:基于文本引导的图像编辑技术

github:diffusers/examples/instruct_pix2pix/train_instruct_pix2pix_sdxl.py at main huggingface/diffusers GitHub 论文&#xff1a;https://arxiv.org/pdf/2211.09800 摘要 我们提出了一种从人类指令编辑图像的方法&#xff1a;给定一个输入图像和告诉模型做什么的书面…...

无人机动力系统设计之桨叶推力计算

无人机动力系统设计之桨叶推力计算 1. 源由2. 关键参数2.1 特性参数2.1.1 材质&#xff08;Material&#xff09;2.1.2 叶片数量&#xff08;Number of Blades&#xff09;2.1.3 重量&#xff08;Weight&#xff09;2.1.4 噪音水平&#xff08;Noise Level&#xff09; 2.2 安装…...

LabVIEW重构其他语言开发的旧系统

在面对一个运行已久、代码不清晰的项目时&#xff0c;如果该项目涉及复杂的通讯协议&#xff08;如串口和488通讯&#xff09;&#xff0c;重新开发并优化成LabVIEW版本可以极大提升系统的易用性和维护性。为了确保通讯协议的顺利解析和移植&#xff0c;借助专业工具分析现有通…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...