3

春のスタイルについて些細な質問があります。

Java クラスのセットが与えられた場合:

クラスA、クラスB、クラスC、クラスD。

これらのクラスは別のシステムのものであり、変更できません。

これらのクラスは、別のプロセッサで処理する必要があります。一部のクラスは、一般的なプロセッサによって処理されます。

だから私の質問は、クラスをプロセッサにマップするための最良の春の方法は何ですか. 現在、私は次のようなことを行うファクトリーBeanを持っています:

package org.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.stereotype.Component;

@Component
public class processorFactory
{

private static List<Object> proc1List = new ArrayList<Object>(Arrays.asList(
        classA.class, classB.class));

private static List<Object> proc2List = new ArrayList<Object>(
        Arrays.asList(classC.class));

private static List<Object> proc3List = new ArrayList<Object>(
        Arrays.asList(classD.class));

public static processor getProcessor(Object object)
{

    if (proc1List.contains(object))
        return new processor1();
    else if (proc2List.contains(object))
        return new processor2();
    else if (proc3List.contains(object))
        return new processor3();

    throw new RuntimeException("no processor.");
}
}

ほとんどのコードはスプリングで冗長です。それにはさまざまな方法があると思いますが、私の質問は、これを春にアノテーションを使用して実装する最良の方法は何ですか.

4

1 に答える 1

1

Spring Java Config を使用している場合は、上記のコードを直接変換できます。つまり、「ファクトリー」コードは、プロセッサーを作成するための @Bean コードになります (大文字の「P」が必要です:)

于 2013-01-15T12:23:40.083 に答える