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

news2024/11/16 7:18:52

在 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;
    
    }
    
}

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

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

相关文章

基于云函数的自习室预约微信小程序+LW示例参考

全阶段全种类学习资源&#xff0c;内涵少儿、小学、初中、高中、大学、专升本、考研、四六级、建造师、法考、网赚技巧、毕业设计等&#xff0c;持续更新~ 文章目录 [TOC](文章目录) 1.项目介绍2.项目部署3.项目部分截图4.获取方式 1.项目介绍 技术栈工具&#xff1a;云数据库…

联想 ThinkSystem DM3000H 混合闪存阵列,助力浙江石油化工全面优化私有云数据管理平台

国内石油化工行业领军企业浙江石油化工有限公司&#xff08;以下简称“浙石化”&#xff09;成立于 2015 年&#xff0c;是一家民企控股、国企参股的混合所有制企业。由浙石化投资建设的炼化一体化项目是国内最大的一次性绿地投资建设的炼化一体化项目&#xff0c;项目规划总面…

十二、新版UI

一、UI Toolkit 这个组件是新版的UI系统 创建了一个新的UIBuild&#xff0c;在单独的场景中打开 未来Unity会以这个为基准。 缺点&#xff1a;目前没有Animator&#xff0c;做不了动画&#xff1b;没法加shader

前端用html写excel文件直接打开

源码 <html xmlns:o"urn:schemas-microsoft-com:office:office" xmlns:x"urn:schemas-microsoft-com:office:excel" xmlns"http://www.w3.org/TR/REC-html40"> <head><meta charset"UTF-8"><!--[if gte mso 9]&…

智能风扇的全新升级:NRK3603语音芯片识别控制模块的应用

在当今智能化生活的潮流中&#xff0c;如何让家电更加人性化、便捷化&#xff0c;已经成为消费者和制造商关注的焦点。在这股大潮中&#xff0c;NRK3603语音识别模块以其出色的性能和广泛的应用&#xff0c;为智能电风扇带来了全新的升级。 1. 芯片特性 NRK3603是一款高性能、…

ADTEC自动阻抗匹配器维修AMVG-2000-FY AMVG-1000-CD

提供全系列ADTEC自动阻抗匹配器维修&#xff0c;射频电源维修。 ADTEC自动阻抗匹配网络可以实现高速自动整合&#xff0c;该系列设备装备了可以通过个人电脑操作和测量的AMV软件&#xff0c;设备内置了用于预设和LC网络的标准库&#xff0c;还可以根据客户要求进行定制&#x…

高颜值官网(1):百货类网站UI,拓展一下你的眼界。

Hi、我是大千UI工场&#xff0c;本期开始每次分享8-10个各行业的大气颜值官网&#xff0c;欢迎关注我&#xff0c;以便及时收到更新消息&#xff0c;我是10年UI和前端领域老司机了&#xff0c;一定不负所望。

代码随想录 - 1 - 数组 - 二分查找

代码随想录&#xff1a;代码随想录 一.数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合 数组可以方便的通过下标索引的方式获取到下标对应的数据 需要注意&#xff1a; 数组下标都是从0开始的数组内存空间的地址是连续的正是因为数组在内存空间的地址是连续的&…

post请求中有[]报400异常

序言 在和前端同学联调的时候&#xff0c;发现只要post请求参数里面有[]&#xff0c;就会报400的错误 可以看到日志中&#xff1a; The valid characters are defined in RFC 7230 and RFC 3986 解决办法&#xff1a; 参考了博客&#xff1a; spring boot 中解决post请求中有…

企业如何进行社媒聆听?需要关注哪些维度?

企业进行社媒聆听&#xff0c;简单来说就是关注企业在抖音、小红书、微信等社交媒体平台的品牌、竞品被提及情况。用以帮助企业洞悉客户与市场&#xff0c;调整营销节奏。要做好社媒聆听&#xff0c;主要从以下几个方面入手&#xff1a; 一、监测内容-了解品牌声量趋势 设定品…

在centos上搭建syslog服务端

在CentOS上搭建一个syslog服务器&#xff0c;可以使用rsyslog服务 安装rsyslog&#xff1a; sudo yum install rsyslog编辑配置文件 /etc/rsyslog.conf&#xff0c;确保以下设置&#xff1a; 确保服务器监听在UDP 514端口上&#xff1a; $ModLoad imudp $UDPServerRun 514禁…

【高中物理】用代码缩写胡克定律公式原理图

用代码缩写胡克定律公式原理图 代码实现了以下功能&#xff1a; 交互式滑块&#xff1a;用户可以通过滑块调整弹簧的弹性系数&#xff08;k&#xff09;、拉力大小&#xff08;F&#xff09;和弹簧的原长&#xff08;l0&#xff09;&#xff0c;实时观察弹簧的伸长和受力变化。…

消费零售行业如何实现数智化转型?从四个阶段循序渐进

随着信息技术的迅猛进步&#xff0c;企业纷纷踏上数字化转型的征途&#xff0c;而数字化仅是实现数智化的起点。数智化&#xff0c;核心在于数据智能化&#xff0c;它强调企业运用数字化技术汇聚并分析数据&#xff0c;以数据为引擎推动决策优化与创新发展。在消费零售领域&…

RiverPod以及Hook

RiverPod 导入和基础等查看官方文档 import package:hooks_riverpod/hooks_riverpod.dart;final normalProvider Provider<String>((ref) {return "this is normalProvider"; }); final stateProvider StateProvider.autoDispose((ref) {return "this …

Docker:对已有的容器,对当前容器映射的端口实时增删改查

首先我的docker已经起了一个容器&#xff0c;我突然想把他的80->80映射的端口改成80->8080 但是我不想去新启动容器&#xff0c;想在现有容器基础上去修改&#xff0c;或者我想删除某个端口映射&#xff08;只是大概思路&#xff09; 如何寻找容器配置文件位置 首先我这…

SpringBoot大学生租房平台:技术实现与市场分析

第2章 开发环境与技术 大学生租房平台的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对大学生租房平台用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xff0c;没有办…

使用LDAP登录GitLab

使用LDAP登录GitLab gitlab.rb 配置如下 gitlab_rails[ldap_enabled] true #gitlab_rails[prevent_ldap_sign_in] false###! **remember to close this block with EOS below** gitlab_rails[ldap_servers] YAML.load <<-EOSmain:label: LDAPhost: 172.16.10.180port:…

FAT32文件系统详细分析 (格式化SD nandSD卡)

FAT32 文件系统详细分析 (格式化 SD nand/SD 卡) 目录 FAT32 文件系统详细分析 (格式化 SD nand/SD 卡)1. 前言2.格式化 SD nand/SD 卡3.FAT32 文件系统分析3.1 保留区分析3.1.1 BPB(BIOS Parameter Block) 及 BS 区分析3.1.2 FSInfo 结构扇区分析3.1.3 引导扇区剩余扇区3.1.4 …

程序员如何写笔记并整理资料?

整理笔记 word。没错&#xff0c;我也看了网上一大堆软件&#xff0c;还有git管理等等。个人认为如果笔记只是记录个人的经验积累&#xff0c;一个word就够了&#xff0c;那些notepad&#xff0c;laTex个人觉得不够简练。word。 1.word可以插入任何文件附件(目前最大的word 20…

python简单处理nmap的扫描结果

0x00 前言 当我们使用nmap扫描大量目标的时候&#xff0c;会使用nmap 扫描大量的IP后&#xff0c;会使用nmap对扫描结果进行输出保存&#xff0c;例如-oX 保存为xml文件&#xff0c;但是我们经常使用的是excel表格进行分发结果到各个负责人。 0x01设计 我们可能使用不同时间的…