1

これは紛らわしいです。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 を起動しても失敗しないのはなぜですか?

ありがとう

4

1 に答える 1

1

これは、プロパティがテスト ケースのクラスパスに読み込まれていないことを意味します。テスト用のコンテキストでプロパティ ファイルを読み込んでみてください。

于 2013-06-03T15:16:42.680 に答える