0

我想在我的应用程序中使用枚举类型来表示功能标志。枚举类型有状态和描述。我希望能够在我的代码中执行以下操作;

FeatureFlag.FANCYFEATURE.isActive()

然后 isActive() 方法将调用连接到数据库的服务类以获取功能状态。

但是,在我的 Spring 应用程序中,由于 Enum 类型是静态的,因此不可能将 bean 注入到 Enum 中。

有人可以推荐一种干净的方法吗?

4

2 回答 2

4

以下语句应该告诉您有问题

然后 isActive() 方法将调用连接到数据库的服务类以获取功能状态

如果您正在获取状态,我们可以假设它在不同的时间可能会有所不同,即。不是常数。不要enum用于这个。

如果你这样做了,回答

有人可以推荐一种干净的方法吗?

正如你所说,没有办法将豆子注入其中。

于 2013-09-06T16:15:51.863 回答
3

无论如何enum,请使用 for 功能列表,但请不要使用enumfor 可变状态。

您最好使用EnumMap<Enum,State>结构来存储针对enum.

于 2013-09-06T16:21:10.747 回答