これは紛らわしいです。Tomcatの起動時にVMオプションの中でオプションで指定されるプロパティouterParameterがあります。私は自分のロジックで次のように使用しています。
@Value("${outerParameter:paused}")
private String featureStatus = "active";
public String getFeatureStatus() {
return featureStatus;
}
パラメータなしで tomcat を起動すると、予想どおり、getFeatureStatus で「一時停止」と表示されます。定義されたパラメーターで開始する場合 - 期待どおり、このパラメーター値を提供します。紛らわしい部分は、getFeatureStatus の JUnit テストを実行しているときに、デフォルトの「一時停止」ではなく「アクティブ」になることです。テストのコンテキストには構成が含まれていません<context:property-placeholder../>
。
欠けているものを理解しようとしています。誰かが私に手を差し伸べてくれるかもしれません
私はこれを見つけました: プロパティが存在しない場合、Spring @Valueアノテーションはデフォルトを使用していません 。これは私の場合の答えでもあります。「おそらく、プロパティファイルが見つからないためにプロパティプレースホルダー構成ツールの初期化が失敗し、プレースホルダーが解決されません」と表示されます。しかし、そうであれば、outerParameter を定義せずに tomcat を起動しても失敗しないのはなぜですか?
ありがとう