1

JSON/Zookeeper から取得するプロパティを指定するプロパティ ファイルがあります。

例:

AppName : SampleApp

SampleApp.properties 内で指定します

configmode=json
jsonfile=/config.json

プロパティ ファイルを使用して @Scheduled アノテーション内でプロパティを割り当てる方法の例は多数あります。

しかし、このシナリオでは、

いくつかの Java クラスを使用してプロパティを読み取り (Name isなどConfig) String cronExp=Config.get("CRONEXPRESSION") ; 、その cron を内部に配置する必要があり@Scheduled(cron = cronExp)ます..これは可能ですか?

CRONEXPRESSION プロパティをプロパティ ファイルに直接移動することはできないことに注意してください。プロパティ ファイル内で json について説明します。コード内でその json を読み取り、そこからプロパティを選択します。

4

1 に答える 1

0

簡潔な答え:

残念ながら、それはできません。

Java では、アノテーション属性はコンパイル時に解決されます。つまり、即値または定数のみを指定できます。

ユースケース固有の回答:

Spring では、さまざまな場所でSpELを使用できます。この場合、アノテーションの属性の値はコンパイル時に解決されますが、この値は実行時に Spring によって評価されます。@RCは、詳細についての議論への適切なリンクを提供してくれました。

やや長い答え:

リフレクションを使用して実行時に注釈を変更することは可能ですが、これはトリッキーな方法であり、注釈を処理するコードは、実行時に注釈が変更されるケースを処理する必要があります (これは非常にまれなケースです)。

于 2016-01-22T12:38:09.027 に答える