千家信息网

Java怎么使用ConfigurationProperties获取yml中的配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Java怎么使用ConfigurationProperties获取yml中的配置"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么使
千家信息网最后更新 2026年11月02日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安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 华服互联网科技怎么样 江苏根荣互联网科技 奇酷互联网科技 科技与互联网的利与弊 北京三清互联网科技 中国互联网有什么科技含量 互联网科技有哪些公司 佳云科技和互联网广告 互联网科技公司有风险吗 洛阳昕诺飞互联网科技有限公司 互联网科技和信息 中国科技创新与世界互联网大会 996高科技互联网公司 迪庆互联网科技招生 用友工业互联网科技发展 山东大美朱楼互联网科技有限公司 科技互联网专业工作会议发言稿 科技互联网企业在行动 恒生科技互联网指数十大成分股 互联网科技 互联网新科技 科技创新互联网企业 广西拼得多互联网科技有限公司 中国互联网十大科技股排名 上海创道互联网络科技有限公司 2021世界互联网领先科技成果发布 科技互联网专业务虚会材料 广东猫王互联网科技有限公司电话 山东亿川互联网科技有限责任公司
0