在springboot中使用枚举类

参考:

https://wenku.baidu.com/view/3712610bb7daa58da0116c175f0e7cd184251804.html

https://blog.csdn.net/u013343616/article/details/120492725

https://blog.csdn.net/qq_20009015/article/details/103722756

枚举类大家都很熟悉,可以约束变量的类型,也可以将枚举变量映射到不同的方法,以减少令人boring的if/else方法。

那枚举类实例方法中只能写System.out.print吗?

如果我想@Autowired其他的Bean怎么办

网络上搜了下,还真能实现。

枚举类自身无法@Autowired,但是它的静态内部类可以。

复制代码
@Component
public enum OperateCode {

    SET_RELATION() {
        @Override
        void process(MetadataSyncMessage message) {
            SET_RELATION.service.setRelation(message.getRelation());
        }
    },//
    DEL_RELATION {
        @Override
        void process(MetadataSyncMessage message) {
            DEL_RELATION.service.deleteRelation(message.getRelation());
        }
    };//

    private Service service;


    abstract void process(MetadataSyncMessage message);

    @Component
    static class OperateHandler {
        @Autowired
        private Service service;

        @PostConstruct
        public void init() {
            OperateCode[] values = OperateCode.values();
            for (OperateCode value : values) {
                value.service = service;
            }
        }
    }
}
复制代码

 

posted @   Mars.wang  阅读(1139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2021-07-28 springboot过滤器和拦截器
点击右上角即可分享
微信分享提示