栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java枚举使用spring的@value注入属性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java枚举使用spring的@value注入属性

背景:在spring中使用@value注解来达到动态配置线上和预发环境的参数,在普通类中可以随意使用@value实现,java枚举enum无法注入,怎么解决这个问题?

public enum SpringValueEnum {

    TEACHER(0, "我是老师"),
    STUDENT(1, "我是学生") {
        @Override
        public String getDesc() {
            return PeopleEnumContainer.name;
        }
    };

    private Integer code;
    private String desc;

    SpringValueEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }


    @Component
    static class PeopleEnumContainer {

        private static String name;

        @Value("${people.student.desc}")
        public void init(String name) {
            PeopleEnumContainer.name = name;
        }
    }
}

如上,使用内部类注入,重写枚举属性get方法来达到动态替换的目的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号