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

@NestedConfigurationProperty 注解用法

注解概述

  @NestedConfigurationProperty 注解在Spring Boot中用于标记配置类中的嵌套属性。这个注解通常用于当一个配置类拥有另一个非标量(非简单值,如自定义类型)属性时,指明该属性也应该被视为配置属性进行处理。

集合上的使用

  @NestedConfigurationProperty 本身并不直接用于集合属性。它主要用于标记单个复杂类型的配置属性,以便Spring Boot的配置机制能够识别这些属性为嵌套的配置对象。

集合属性的配置绑定

   对于集合类型的配置属性,例如ListSetMap,Spring Boot可以直接将配置文件中的值绑定到这些集合上,无需使用@NestedConfigurationProperty。如果集合中的元素是自定义类型,Spring Boot会尝试将配置值绑定到这些自定义类型的属性上。

示例一

考虑以下配置类示例:

@ConfigurationProperties(prefix = "my")
public class MyProperties {private List<NestedConfig> nestedConfigs;// Getter and setter methodspublic List<NestedConfig> getNestedConfigs() {return nestedConfigs;}public void setNestedConfigs(List<NestedConfig> nestedConfigs) {this.nestedConfigs = nestedConfigs;}public static class NestedConfig {private String property;// Getter and setter methodspublic String getProperty() {return property;}public void setProperty(String property) {this.property = property;}}
}

application.properties中,你可以这样配置嵌套的集合属性:

my.nested-configs[0].property=FirstValue
my.nested-configs[1].property=SecondValue

   Spring Boot将会自动将配置值绑定到MyProperties类中的nestedConfigs列表的相应元素上。每个列表元素是NestedConfig类型的实例,其property属性将被设置为相应的配置值。在这种情况下,你不需要在NestedConfig类上或其属性上使用@NestedConfigurationProperty注解。

示例二

  对于Map类型的配置属性,Spring Boot可以将配置文件中的值绑定到Map上,其中键是Map的键,值是Map的值。如果Map的值是自定义类型,不需要使用@NestedConfigurationProperty注解,Spring Boot会自动处理配置的绑定。

@ConfigurationProperties(prefix = "my")
public class MyProperties {private Map<String, NestedConfig> nestedConfigMap;// Getter and setter methodspublic Map<String, NestedConfig> getNestedConfigMap() {return nestedConfigMap;}public void setNestedConfigMap(Map<String, NestedConfig> nestedConfigMap) {this.nestedConfigMap = nestedConfigMap;}public static class NestedConfig {private String property;// Getter and setter methodspublic String getProperty() {return property;}public void setProperty(String property) {this.property = property;}}
}

application.propertiesapplication.yml中配置Map属性:

# For application.properties
my.nested-config-map.key1.property=Value1
my.nested-config-map.key2.property=Value2

or

# For application.yml
my:nested-config-map:key1:property: Value1key2:property: Value2

   在这个例子中,my.nested-config-map是一个映射,其键是String类型,值是NestedConfig类型。配置文件中的每个条目都会创建一个NestedConfig实例,并将其property属性设置为相应的配置值。

   在Map集合中使用@NestedConfigurationProperty不是必须的,因为Spring Boot已经提供了处理嵌套配置的能力。当你的配置属性是Map类型,并且Map的值是自定义类型时,只需确保自定义类型有正确的getter和setter方法,Spring Boot将自动进行配置绑定

相关文章:

  • 【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类
  • 浅述无人机技术在地质灾害应急救援场景中的应用
  • React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习
  • 透视数据:数据可视化工具的多重场景应用
  • 【华为OD题库-106】全排列-java
  • Hadoop 集群环境搭建
  • Pooling方法总结(语音识别)
  • Farad capacitor法拉电容为什么又称Super capacitor超级电容?
  • 2024最新软件测试面试题(带答案)
  • 【数据结构之顺序表】
  • 掌握Jenknis基础概念
  • 【华为机试】2023年真题B卷(python)-乘坐保密电梯
  • 持续集成交付CICD:HELM 自动化完成前端项目应用发布与回滚
  • HBase基础知识(二):HBase集群部署、HBaseShell操作
  • Linux的/proc/self/学习
  • Cumulo 的 ClojureScript 模块已经成型
  • maven工程打包jar以及java jar命令的classpath使用
  • nginx 配置多 域名 + 多 https
  • nodejs调试方法
  • PHP变量
  • scrapy学习之路4(itemloder的使用)
  • Spring Cloud Feign的两种使用姿势
  • vue 个人积累(使用工具,组件)
  • webpack+react项目初体验——记录我的webpack环境配置
  • webpack4 一点通
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 机器学习学习笔记一
  • 力扣(LeetCode)21
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 每天一个设计模式之命令模式
  • 那些年我们用过的显示性能指标
  • 手写双向链表LinkedList的几个常用功能
  • FaaS 的简单实践
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (阿里云万网)-域名注册购买实名流程
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计ssm电影分享网站
  • (一)Neo4j下载安装以及初次使用
  • (转)详解PHP处理密码的几种方式
  • (转载)(官方)UE4--图像编程----着色器开发
  • . Flume面试题
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 材料检测系统崩溃分析
  • .Net的DataSet直接与SQL2005交互
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法