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

SpringBoot项目获取统一前缀配置以及获取非确定名称配置

SpringBoot项目获取统一前缀配置以及获取非确定名称配置

在SpringBoot项目中,我们经常看到统一前缀的配置,我们该怎么统一获取
my.config.a.name=xiaoming
my.config.a.age=18
my.config.a.address=guangdong

my.config.b.name=xiaomli
my.config.b.age=20
my.config.b.address=shandong

方式一:使用对应的配置类并结合注解:@ConfigurationProperties(prefix = “xxx.xxx”)

配置文件:

my.config.name=xiaoming
my.config.age=18
my.config.address=guangdong

对应的配置类:MyProperties

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @author gooluke*/
@Component
@ConfigurationProperties(prefix = "my.config")
@Getter
@Setter
public class MyProperties {private String name;private int age;private String address;
}

获取配置类,打印属性:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/test")
public class TestController {@Autowiredprivate MyProperties myProperties;@RequestMapping("/show")public void show() {System.out.println("myProperties.getName() = " + myProperties.getName());System.out.println("myProperties.getAge() = " + myProperties.getAge());System.out.println("myProperties.getAddress() = " + myProperties.getAddress());}
}

打印结果:
在这里插入图片描述

方式二:获取统一前缀,而后面非确定字段名的配置

配置文件:

my.config.a.name=xiaoming
my.config.a.age=18
my.config.a.address=guangdongmy.config.b.name=xiaomli
my.config.b.age=20
my.config.b.address=shandong

对应的配置类:

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.Map;/*** @author gooluke*/
@Component
@ConfigurationProperties(prefix = "my")
@Getter
@Setter
public class MyProperties2 {//这里的config得对应上my.config.xx里的configprivate Map<String, UserInfoConfig> config;@Setter@Getterpublic static class UserInfoConfig {private String name;private Integer age;private String address;}}

获取配置类,打印属性:

@Autowired
private MyProperties2 myProperties2;@RequestMapping("/show2")
public void show2() {Map<String, MyProperties2.UserInfoConfig> config = myProperties2.getConfig();config.forEach((user, userInfoConfig) -> {System.out.println("user = " + user);System.out.println("userInfoConfig.getName() = " + userInfoConfig.getName());System.out.println("userInfoConfig.getAge() = " + userInfoConfig.getAge());System.out.println("userInfoConfig.getAddress() = " + userInfoConfig.getAddress());});
}

打印结果:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python画图|3D surface基础教程
  • 【诉讼流程-健身房-违约-私教课-多次沟通无效-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(1)】
  • tensor 的运算(加法、点乘、矩阵乘法)
  • node.js框架StrongLoop快速入门实战
  • Python编码系列—Python建造者模式:构建复杂对象的优雅之道
  • C++学习笔记(22)
  • llvm后端之函数栈帧
  • Mastering openFrameworks_第五章_使用视频
  • 健身管理|基于java的健身管理系统小程序(源码+数据库+文档)
  • 清理.svn文件夹执行命令bat
  • -isystem isystem 实验记录
  • 【数据结构与算法 | 灵神题单 | 前后指针(链表)篇】力扣19, 61,1721
  • 赛氪技术支持中医药知识大赛,亮相中国国际服务贸易交易会
  • 1997-2022年各省农用化肥折纯量数据(无缺失)
  • 【Kubernetes】常见面试题汇总(十五)
  • 自己简单写的 事件订阅机制
  • 07.Android之多媒体问题
  • cookie和session
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript 奇技淫巧
  • Java超时控制的实现
  • k8s如何管理Pod
  • PHP变量
  • python_bomb----数据类型总结
  • SQLServer之创建显式事务
  • ucore操作系统实验笔记 - 重新理解中断
  • vue2.0项目引入element-ui
  • 程序员最讨厌的9句话,你可有补充?
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 深度解析利用ES6进行Promise封装总结
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 算法之不定期更新(一)(2018-04-12)
  • 第二十章:异步和文件I/O.(二十三)
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • !!Dom4j 学习笔记
  • # include “ “ 和 # include < >两者的区别
  • #数学建模# 线性规划问题的Matlab求解
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)Hilt的基本概念和使用
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (k8s)Kubernetes本地存储接入
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • ***原理与防范
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .DFS.
  • .net core 依赖注入的基本用发