1

これは私のクラスです:

public class MyClassA {

    private int mode;
    public static int THREAD_MODE=1;
    public static int CLUSTER_MODE=2;

    public MyClassA(int mode) {
         this.mode= mode;
    }
}

そして、この情報をSpring構成xmlでクラスインスタンスに送信したいと思います。どうすればこのようなことを達成できますか?

<bean id="myclass" class="com.test.MyClassA"> <constructor-arg value="MyClassA.THREAD_MODE"/> </bean>
4

2 に答える 2

14

名前util空間は、constantまさにこれを行う要素を提供します。

<constructor-arg>
    <util:constant static-field="MyClassA.THREAD_MODE"/>
</constructor-arg>

この機能のサポートは、FieldRetrievingFactoryBeanクラスによって提供されます。

これには、名前空間といくつかのスキーマを<beans>要素に追加する必要があります。つまり、以下で言及している項目utilです。

<beans xmlns="..."
    xmlns:xyz="..."
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="...
    ...
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util.xsd">
于 2012-07-18T11:20:07.750 に答える
2

私はおそらくintの代わりに列挙型を使用するでしょう(よりタイプセーフで範囲が制限されています)。Springは列挙型の注入をサポートします。詳細については、この記事を参照してください。

于 2012-07-18T11:21:30.317 に答える