2

繰り返し処理する必要がある Class タイプのリストがあり、そのリスト内のすべてのタイプについて、Spring は初期化する正しい種類のオブジェクトを自動的に見つける必要があります。

例: ClassA と ClassB があります。たとえば、タイプ User がある場合、ClassA を特定のパラメーター (context.xml で定義されている) で初期化する必要があります。たとえば、メッセージのタイプがある場合、タイプ ClassA からオブジェクトを作成する必要がありますが、context.xml で再度定義される異なるパラメーターを使用します。

どうすればこれを行うことができますか?私は春の制御機能の反転を見てきましたが、私の特定の目的のための正しい実装を見つけることができないようです

1 つのアイデアは、次のようなあらゆる種類の可能なタイプの Bean を作成することでした。

<bean id="classAconfig" class="ClassA">
    <property name="type" value="User.class"/>
    <property name="fields">
        <list>
            <value>id</value><value>email</value>
        </list>
    </property>
    <property name="map">
        <map>
            <entry key="id" value="1"/><entry key="login" value="1"/><entry key="email" value="1"/>
        </map>
    </property>
</bean>

敬具、

メルリン

4

1 に答える 1

0

さて、私はそれを見つけました。上記のように、コンテキストxmlでいくつかのBeanを定義する必要がありました。しかし、ClassA では InitializingBean を拡張し、afterPropertiesSet メソッドをオーバーライドしました。その方法で、サービスに ClassA を登録しました。

public class ClassA extends InitializingBean
@Override
public void afterPropertiesSet() throws Exception {
    service.registerClass(this);
} 

そして、私のサービスで:

public void registerClass(@Nonnull Class clazz) {
    classes.put(clazz.getType(), clazz);
}
于 2013-03-12T14:30:58.737 に答える