我在尝试自动装配一个可运行的类并在不同的调用中创建它的不同实例并将其保存在一个数组中时遇到了这个问题。
xml配置为:
<bean name="threadName" Class="ABC" scope="prototype" />
在我的代码中,我正在尝试这样的事情:
public class ThreadHandler{
@Autowired
private ABC threadName;
//getter
ABC getThreadName(){
return threadName;
}
public void someFunction(){
List<ABC> abc = new ArrayList(ABC>();
for (int i=0;i<SOME_CONST;i++){
ABC tName = getThreadName();
abc.add(tName);
tName.start();
}
}
}
让我们ABC
成为一个类Thread/Runnable/Callable
。
这样,它抛出java.lang.IllegalThreadStateException
. 但是,它工作正常,如果我使用ABC tName =appContext.getBean("threadName",ABC.class);
为什么会这样?
我们在尝试从 getMethod 获取对象时不会得到一个新实例吗?