web-dev-qa-db-ja.com

デフォルトのSpring @Value空リスト

Springのプロパティのデフォルト値として空のリストを設定する方法はありますか?

@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;

明らかに新しいArrayListではありませんが、代わりに空のリストが必要です。

10
Roby Rodriguez

SpEL仕様を見て、@ javaguyの答えと組み合わせた後、私はこれを思いつきました:

@Value("${my.list.of.strings:}#{T(Java.util.Collections).emptyList()}")
private List<String> myList;
16
Roby Rodriguez

以下に示すように、Collections.emptyList()サイズがゼロの空のリストオブジェクトに入力するを使用できます。

@Value("#{T(Java.util.Collections).emptyList()}")
private List<String> myList;

これにより、サイズがゼロのmyListが得られます

0
developer
@Value("#{T(Java.util.Arrays).asList('${my.list.of.strings:}')}")
private List<String> myList;

spring 5.0.xを使用して私のために機能します(my.list.of.stringsプロパティがコンテキストで設定されていない場合、空のリストを提供します)

その後、簡単に次のようなことができます

CollectionUtils.isNotEmpty(myList)
0
Philipp Wirth