我試圖自動裝載可運行的類並在不同的調用中創建不同的實例並將其保存在數組中時遇到此問題。更清晰的方式來獲取自然形式的自動佈線字段的新實例
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獲取一個對象時,我們不能獲得新的實例嗎?
你不需要任何吸氣劑。只是用這個。threadName.someFinction();你的意思是 – 2012-04-27 21:25:09
,this.threadName會一直給新的實例?就像appContext.getBean(「name」,class)一樣? – instanceOfObject 2012-04-27 21:28:16