6

サービスに注入するジェネリック型があります。ジェネリックが Java で実装される方法のため、ジェネリック型パラメーターのクラス情報を保持するコンストラクター arg (またはプロパティ セッター) が必要です。

私の質問は - プロパティの注入またはコンストラクター引数の指定を介して、Spring を使用して Class のインスタンスを渡すことはできますか?

私は実行前に T の型を知っているので、Type パラメーターがどうなるかを具体的に知っています。

私はそれが次のようになると思っていました:

<bean id="dataMartService" class="com.someclass">
    <constructor-arg value="java.lang.class<com.someotherclass>" />
</bean>

これがどのように起こるべきか、私は完全にオフですか?

4

3 に答える 3

10

試す:

<bean id="dataMartService" class="com.someClass">
    <constructor-arg>
        <value type="java.lang.Class">someotherclass</value>
    </constructor-arg>
</bean>
于 2012-08-15T14:56:45.700 に答える
7

春エルを使用:

<constructor-arg value="#{ T(java.lang.Math) }" />

(これにはSpring 3.0が必要です)

そうは言っても、プロパティの設定中にクラスが期待される引数に文字列を渡すと、Spring は自動的にそれを変換する必要がありますが、コンストラクターを照合するときにこれがどのように機能するかはわかりません。上記のアプローチは、はるかに簡潔です。

于 2012-08-15T14:58:31.147 に答える