0

私は以下のようなクラスを持っています:

public class SensitivityDescription {

    private final String measureId;
    private final ColumnType type;  private final String sensName;
    private final SensType sensType;
    private final ServicePhase svcPhase;
    private final AggregateFunction agFn;
    private final String positionEnum;

    private static List <SensitivityDescription> senRecordList = new ArrayList<SensitivityDescription> ();

    public SensitivityDescription(String measureId, ColumnType type,
    String sensName, SensType sensType, ServicePhase svcPhase,
    AggregateFunction agFn, String positionEnum) {
    super();
    this.measureId = measureId;
    this.type = type;
    this.sensName = sensName;
    this.sensType = sensType;
    this.svcPhase = svcPhase;
    this.agFn = agFn;
    this.positionEnum = positionEnum;
}

static senRecordListクラスのオブジェクトを設定する必要がありますSensitivityDescription。Spring xml でこれを行うにはどうすればよいですか。

4

2 に答える 2

0

春の考え方はあなたのアプローチとはうまくいきません。
しかし、これを回避することができます。
SensitivityDescription の senRecordList のパブリック セッターを追加します。デフォルトのコンストラクタを追加

public class SensitivityDescription {

    private final String measureId;
    ...

    private static List <SensitivityDescription> senRecordList = new ArrayList<SensitivityDescription> ();

    public SensitivityDescription(String measureId,..) {
    ...
    }
    /** new code */
   public SensitivityDescription() {super();}   
   public void setSenRecordList(List<SensitivityDescription> senRecordList) {
        SensitivityDescription.senRecordList = senRecordList;
   }

}

Bean を 1 回インスタンス化すると、リストがフィールドに注入されます。

<bean class="...SensitivityDescription">
    <property name="senRecordList">
    <util:list  value-type="...SensitivityDescription">
        <bean class="...SensitivityDescription">
            <constructor-arg name="name" “measureId”
                <value>id1</value>
                    </constructor-arg>
            <constructor-arg name="name" "sensName"
                <value>name1</value>
                    </constructor-arg>
                ...
        </bean>
        <bean class="...SensitivityDescription">
            <constructor-arg name="name" "measureId"
                <value>id2</value>
                    </constructor-arg>
            <constructor-arg name="name" "sensName"
                <value>name2</value>
                    </constructor-arg>
                ...
        </bean>     
    </util:list>
    </property>
    </bean>

これが従来のコードではなく、変更できる場合は、静的フィールドではなく、それらの値に対してシングルトンを定義することをお勧めします。春はそれが好きになるでしょう。

于 2013-07-09T10:58:54.010 に答える