2016-08-25 5 views
0

これは非常にコンテキストが少ないため、これは私の単純な質問です。春の@Valueを使用してnull値をプロパティ値として取得する方法

私はapplication.properties

allowedValues=Hello, Hi, null 

でブートアプリを春と

@Value("${allowedValues}") 
private String[] allowedGreetings; 

私はこれを実行すると、allowedGreetings配列の値としてあるが、次のように私は私の春の構成要素の値を読んでいます予想通り("Hello", "Hi", "null")

しかし、私が欲しいのは、配列を得る方法です。("Hello", "Hi", null)

ご覧のとおり、アレイのメンバーとしてnullを読み込みたいので、allowedGreetingsのデフォルト値をnullに設定することはできません。

これは、配列を読み取る関数を書くのを避け、配列のをnullに変換することです。春になる可能性はありますか?

+0

を呼び出すためにSPELを使用しますか? – chrylis

+0

また、代わりに '@ ConfigurationProperties'を使ってみましたか? – chrylis

+0

'allowedValues = Hello、Hi、'についてはどうですか? – Minh

答えて

0

私はこの

package tuladhar.aman; 
@Component // @Service , @Controller etc 
public class Application {} 

ようなクラスは、静的メソッドparsePropertiesparseStringを作成しました。 は、あなたが `一覧 を`使用している場合はどうなりますか方法

"#{T(tuladhar.aman.Application).parseProperties('${allowedValues}')}"

public static List<String> parseProperties(String[] array) { 
     return Stream 
      .of(array) 
      .map(Application::parseString) 
      .collect(Collectors.toList()); 
    } 

    public static String parseString(String s){ 
     return "null".equals(s) ? null : s; 
    } 

    @Value("#{T(tuladhar.aman.Application).parseProperties('${allowedValues}')}") 
    private List<String> allowedValues; 
+0

私はnullにnullを解析するカスタムメソッドを避けようとしました。 –

+0

その種の機能が組み込まれているかどうかはわかりません。 –

関連する問題