0

アプリケーションで機能フラグを表すために列挙型を使用したいと考えています。列挙型には状態と説明があります。コードで次のようなことができるようにしたい。

FeatureFlag.FANCYFEATURE.isActive()

isActive() メソッドは、データベースに接続するサービス クラスを呼び出して、機能の状態を取得します。

ただし、私の春のアプリケーションでは、列挙型が静的であるため、Bean を列挙型に注入することはできません。

誰かがこれを行うためのクリーンな方法を推奨できますか?

4

2 に答える 2

4

次のステートメントは、何かが間違っていることを示しているはずです

isActive() メソッドは、データベースに接続するサービス クラスを呼び出して機能の状態を取得します。

状態を取得している場合、異なる時点で異なる可能性があると想定できます。定数ではありません。これには使用しないでくださいenum

もしそうなら、答えるために

誰かがこれを行うためのクリーンな方法を推奨できますか?

あなたが言ったように、それに豆を注入する方法はありません。

于 2013-09-06T16:15:51.863 に答える
3

機能のリストには必ず for を使用しますが、可変状態enumの for は使用しないでください。enum

EnumMap<Enum,State>に対して変更可能な状態を格納するために構造体を使用することをお勧めしenumます。

于 2013-09-06T16:21:10.747 に答える