我有一个关于春季风格的琐碎问题。
给定一组 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.");
}
}
大部分代码与 spring 是多余的。我确信有多种方法可以做到这一点,但我的问题是在春季使用注释实现这一点的最佳方法是什么。