実行可能なクラスを自動配線しようとして、別の呼び出しでその別のインスタンスを作成し、それを配列に保持しているときに、この問題に直面しました。
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 からオブジェクトを取得しようとすると、新しいインスタンスが取得されませんか?