Java怎么使用ConfigurationProperties获取yml中的配置
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"Java怎么使用ConfigurationProperties获取yml中的配置"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么使
千家信息网最后更新 2025年11月07日Java怎么使用ConfigurationProperties获取yml中的配置
这篇文章主要介绍"Java怎么使用ConfigurationProperties获取yml中的配置"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么使用ConfigurationProperties获取yml中的配置"文章能帮助大家解决问题。
使用ConfigurationProperties获取yml的配置
我们在开发过程中,会经常遇到需要自定义配置的场景,比如配置一个ip,一个地址等,并将其写入到yml文件中,在项目中使用@Value("${xxxx.xxxx}")来获取自定义的配置,其实是这样是有些笨重的,每定义一个配置,都需要写一个@Value来获取,那为啥不使用一个java config来统一获取配置呢?
使用方法
编写yml配置文件
user: config: # user_name user-name userName这三种配置方式都可以被识别到 user_name: "zhangsan" age: "20" exmail: "123@123.com" address: "火星"
编写Java config类
// 需要重写get与set方法,此处使用lombok注解来代替@Data// 实例化到spring容器中@Component// 获取前缀为user.config的配置信息,与该类下的属性对比,进行绑定@ConfigurationProperties(prefix = "user.config")public class UserConfig { private String userName; private String age; private String exmail; private String address;}在需要使用的地方注入
@Resource private UserConfig userConfig;
测试

@ConfigurationProperties获取不到配置文件属性值问题
application.yml
配置类
@Component@ConfigurationProperties(prefix = "system")public class SystemConfig { /** * 项目名称 */ private static String name; /** * 版本 */ private String version; /** * 版权年份 */ private String copyrightYear; /** * 实例演示开关 */ private boolean demoEnabled; /** * windows环境下,文件上传路径(本地上传) */ private static String winUploadPath; /** * 其他系统环境(linux、Mac...)环境下,文件上传路径(本地上传) */ private static String otherUploadPath; /** * 获取地址开关 */ private static boolean addressEnabled; public static String getName() { return name; } public void setName(String name) { SystemConfig.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getCopyrightYear() { return copyrightYear; } public void setCopyrightYear(String copyrightYear) { this.copyrightYear = copyrightYear; } public boolean isDemoEnabled() { return demoEnabled; } public void setDemoEnabled(boolean demoEnabled) { this.demoEnabled = demoEnabled; } public static String getWinUploadPath() { return winUploadPath; } public static void setWinUploadPath(String winUploadPath) { SystemConfig.winUploadPath = winUploadPath; } public static String getOtherUploadPath() { return otherUploadPath; } public static void setOtherUploadPath(String otherUploadPath) { SystemConfig.otherUploadPath = otherUploadPath; } public static boolean isAddressEnabled() { return addressEnabled; } public void setAddressEnabled(boolean addressEnabled) { SystemConfig.addressEnabled = addressEnabled; } /** * 判断当前操作系统,返回相应的本地上传路径 * * @return String * @author Liangyixiang * @date 2021/11/15 **/ public static String getUploadPath() { OsInfo osInfo = SystemUtil.getOsInfo(); // 判断系统环境获取上传路径 if(ObjectUtils.isNotEmpty(osInfo) && osInfo.isWindows()){ return getWinUploadPath(); }else{ return getOtherUploadPath(); } } /** * 获取业务系统名称 */ public static String getSystemName() { return getName(); }}name、addressEnabled 以及 winUploadPath、otherUploadPath 都是静态的成员变量,但是他们name、addressEnabled能获取到配置文件的值,winUploadPath、otherUploadPath不可以。
原因就是
winUploadPath、otherUploadPath对应的ser方法也定义为了静态方法。
关于"Java怎么使用ConfigurationProperties获取yml中的配置"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
配置
文件
方法
环境
系统
路径
知识
名称
地址
实例
属性
行业
过程
问题
静态
项目
不同
实用
笨重
操作系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
慈溪一站式软件开发管理
企业服务器管理器怎么打开
水稻 品种 数据库
软件开发研究经费包含什么
网络安全课程中的不足
大兴区管理网络技术服务口碑推荐
ftp服务器c源码
数据库批量给图片加文字
邮箱后台服务器可以冻结吗
山东济南市存储服务器批发
无线网络安全实验室方案
服务器dns安全
信息网络技术书籍
高大上的网络技术
国三网络技术模拟
网络安全的竞争归根结底
网络安全申论大作文
小程序开发数据库调用
江苏择高网络技术有限公司
威科先行数据库优缺点
服务器 r
济南保健品软件开发
校园网络安全隐患及其对策
数据库中必不可少的对象
无线路由网络安全
保证网络安全的核心战略
无限网络安全的发展前景
服务器端口被占怎么办
黄冈试卷软件开发
安徽省不可移动文物数据库