Spring Beanには次のものが含まれています。
@Value("${myValue}")
private String value;
値は正しく注入されます。ただし、変数はオプションである必要があり、コマンドラインパラメーターとして渡され(SimpleCommandLinePropertySourceを使用してSpringコンテキストに追加されます)、この引数は常に存在するわけではありません。
デフォルト値を提供するために、次の両方を試しました。
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
ただし、いずれの場合も、実際の値がある場合でも、コロンの後のデフォルト引数が注入されます。これは、Springが注入する必要があるものをオーバーライドするように見えます。
@Valueが不要であることを指定する正しい方法は何ですか?
ありがとう
それは非常に奇妙です...デフォルト値はデフォルト値としてのみ機能する必要があります(つまり、プロパティが定義されていない場合)「実際の値がある場合でもデフォルト値が挿入される」というステートメント(たとえば、古いコンパイル済みクラスがない場合)を再確認できますか?
—
Pavel Horal 2014
@Value("${some.prop:}")
私のために働きます。それがその変数の唯一の注釈です。
アプリケーション構成を投稿できますか?
—
Vladimir Vagaytsev 2016年
@Autowired(必須= false)?
—
Andrew Scott Evans