Ich verwende Spring Framework für Dependency Injection. An einer Stelle injiziere ich eine Instanz einer bestimmten Klasse in eine andere Klasse und ich muss ein zusätzliches temporäres Objekt derselben Klasse erstellen. Ich könnte wahrscheinlich den Umfang der injizierten Bean zum Prototyp ändern, aber ich frage mich, ob es noch eine andere einfache Möglichkeit gibt, das zu tun?So erstellen Sie manuell eine Klasseninstanz mit Spring
Meine einzige Idee ist, es unter Verwendung new
zu erstellen, aber wollte wissen, ob es eine richtige Möglichkeit gibt, es mit Spring zu machen.
Nur ein allgemeines Beispiel:
@Inject
private ClassA classA;
public void methodA() {
// here I need another instance of ClassA to be used in the scope of this method
}
Was ist der Zweck dieser "temporären" Klasse? Brauchen Sie stattdessen eine Prototyp-Bean? – chrylis
@chrylis Ich verwende Spring für mein automatisiertes Testframework, daher ist es wahrscheinlich nicht die klassische Spring-Verwendung. In meinem Fall repräsentiert dieses Objekt ein logisches Element in der Anwendung, die ich gerade teste, und hier muss ich ein zusätzliches Element einkapseln, das nur innerhalb dieser Methode relevant ist. Hoffnung, die Sinn macht. –
Der Prototypumfang und 'ApplicationContext' sind alles, was Sie brauchen –