Sauberer Weg, um eine neue Instanz eines autodrahtgebundenen Feldes zu erhalten, das ein Prototyp ist

Ich war mit diesem Problem konfrontiert, als ich versuchte, eine ausführbare Klasse automatisch zu verdrahten, verschiedene Instanzen davon in verschiedenen Aufrufen zu erstellen und in einem Array zu belassen.

XML-Konfiguration ist:

<code><bean name="threadName" Class="ABC" scope="prototype" />
</code>

In meinem Code versuche ich so etwas:

<code>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();
      }
}   
</code>

}

LassenABC eine Klasse sein, die istThread/Runnable/Callable.

Auf diese Weise wirft esjava.lang.IllegalThreadStateException. Aber es funktioniert gut, wenn ich benutzeABC tName =appContext.getBean("threadName",ABC.class);

Warum passiert das?

Erhalten wir keine neue Instanz, während wir versuchen, ein Objekt von getMethod abzurufen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage