我想使用和枚举类型来表示我的应用程序中的功能标志。枚举类型具有状态和描述。我希望能够在我的代码中执行以下操作;
FeatureFlag.FANCYFEATURE.isActive()
然后,isActive()方法将调用连接到数据库的服务类以获取功能状态。
然而,在我的spring应用程序中,由于Enum类型是静态的,因此无法将bean注入Enum。
有人可以推荐一种干净的方式吗?
答案 0 :(得分:4)
以下陈述应该告诉你一些错误
然后isActive()方法将调用服务类 连接到数据库以获取功能状态
如果您正在获取状态,我们可以假设它可能在不同时间有所不同,即。不是一个常数。请勿使用enum
。
如果你这样做,回答
有人可以推荐一种干净的方式吗?
就像你说的那样,没有办法注入豆子。
答案 1 :(得分:3)
一定要使用enum
作为功能列表,但请不要将enum
用于可变状态。
最好使用EnumMap<Enum,State>
结构来存储enum
的可变状态。