Wie kann man Bohnen mit Fabrik-Methode, aber ohne Fabrik? [geschlossen]

7

Nach der Untersuchung des Codes fand ich:

%Vor%

Wie kann es möglich sein? Danke.

    
user710818 31.10.2011, 10:38
quelle

2 Antworten

24

Von docs

  

Die in der Bean-Definition angegebenen Konstruktorargumente sind   verwendet, um als Argumente an den Konstruktor der ExampleBean übergeben.   Betrachten wir nun eine Variante von dieser Stelle, anstatt einen Konstruktor zu verwenden,   Spring wird aufgefordert, eine statische Factory-Methode aufzurufen, um eine Instanz zurückzugeben   des Objekts:

%Vor% %Vor%
  

Beachten Sie, dass Argumente für die statische Factory-Methode über bereitgestellt werden   Konstruktor-Arg-Elemente, genauso wie wenn ein Konstruktor hätte   tatsächlich benutzt worden. Auch ist es wichtig zu erkennen, dass die Art von   die Klasse, die von der Factory-Methode zurückgegeben wird, muss nicht von sein   der gleiche Typ wie die Klasse, die die statische Factory-Methode enthält,   obwohl es in diesem Beispiel ist. Eine Instanz (nicht statisch) Fabrik   Die Methode würde im Wesentlichen identisch verwendet werden (abgesehen von   die Verwendung des Factory-Bean-Attributs anstelle des Klassenattributs),   Details werden hier nicht besprochen.

    
Jigar Joshi 31.10.2011, 10:42
quelle
1

Das bedeutet einfach, dass com.test.checkDate eine statische Methode namens getPreviousDate hat. Ihre Fabrik, die die Objekte erstellt, ist com.test.checkDate . Wir wissen nicht, welchen Typ das Objekt zurückgibt, wird in der Konfiguration nicht angegeben, wahrscheinlich ist java.util.Date .

  

Die Definition spezifiziert nicht den Typ (Klasse) des zurückgegebenen Objekts, sondern nur die Klasse, die die Factory-Methode enthält.

Die constructor-arg werden einfach als Parameter an getPreviousDate übergeben. Da die Methode statisch ist, benötigt sie keine Instanz von checkDate . Wenn es lustig klingt, constructor-arg zum Aufrufen einer Methode zu verwenden, die technisch kein Konstruktor ist, denke ich, dass die statische Methode tatsächlich ein Objekt konstruiert, so dass es leichter zu merken ist.

Da Sie in einer früheren Version Ihrer Antwort "ohne Fabrik" erwähnt haben, denken Sie vielleicht an den Fall instanziierung mit einer Instanz-Factory-Methode , die das Attribut factory-bean erfordert, aber dies ist der Fall Instanziierung mit eine statische Fabrikmethode .

    
stivlo 31.10.2011 10:43
quelle

Tags und Links