108

.properties次のように、Springを使用してファイルからプロパティ属性をロードしています。

file: elements.properties
base.module.elementToSearch=1
base.module.elementToSearch=2
base.module.elementToSearch=3
base.module.elementToSearch=4
base.module.elementToSearch=5
base.module.elementToSearch=6

春のxmlファイル

file: myapplication.xml
<bean id="some"
      class="com.some.Class">
      <property name="property" value="#{base.module.elementToSearch}" />
</bean>

そして私のClass.java

file: Class.java
public void setProperty(final List<Integer> elements){
    this.elements = elements;
}

ただし、デバッグ時には、パラメータ要素はリストの最後の要素のみを取得するため、6つの要素を持つリストではなく、値が「6」の1つの要素のリストがあります。

値のみを追加するなど、他のアプローチを試し#{base.module}ましたが、プロパティファイルにパラメータが見つかりません。

回避策は、elements.propertiesファイルに、次のようにコンマで区切られたリストを含めることです。

base.module.elementToSearch=1,2,3,4,5,6

文字列として使用して解析しますが、より良い解決策はありますか?

4

5 に答える 5

215

次のようにプロパティファイルで配列を定義する場合:

base.module.elementToSearch=1,2,3,4,5,6

このような配列を次のように Java クラスにロードできます。

  @Value("${base.module.elementToSearch}")
  private String[] elementToSearch;
于 2011-06-20T13:50:30.850 に答える
43

また、カンマ以外の区切り文字を使用する場合は、それも使用できます。

@Value("#{'${my.config.values}'.split(',')}")
private String[] myValues;   // could also be a List<String>

あなたが持つことができるアプリケーションのプロパティで

my.config.values=value1, value2, value3
于 2016-08-19T13:04:21.757 に答える