Im Spring Framework scheint es beans are the preferred way of creating objects in der Geschäftslogik zu verwenden.Rolle des neuen Schlüsselworts in Spring Framework
[Dependency Injektions] ist ein Verfahren, bei den Objekten, die Abhängigkeiten definieren, das heißt, die anderen Objekte mit denen sie arbeiten, nur durch Konstruktorargumente, Argumente an eine Fabrikmethode, oder Eigenschaften, die nach dem Einschalten der Objektinstanz eingestellt werden es wird konstruiert oder von einer Fabrikmethode zurückgegeben. Der Container fügt diese Abhängigkeiten beim Erstellen der Bean ein. Dieser Prozess ist grundlegend umgekehrt, daher der Name Inversion of Control (IoC), der Bean selbst, der die Instanziierung oder Lokalisierung seiner Abhängigkeiten durch direkte Konstruktion von Klassen oder einen Mechanismus wie das Service Locator-Muster steuert.
Also von meinem einfachen Verständnis ist der Unterschied etwas wie folgt aus:
// Plain ol' Java
Foo f = new Foo();
// Using beans in Spring Framework
Foo f = FooFactory.get();
Ist es eine zu starke Vereinfachung zu sagen, dass in der Regel in Methoden außerhalb von @Configuration
Klassen und @Bean
Definitionen sollten Entwickler nur Objekte mit Bohnen bekommen? Soll in dem Fall, in dem ich ein neues Objekt möchte, eine Prototyp-Bean anstelle des Schlüsselworts new
direkt injiziert werden?
Ein Beispiel für einen Code, in dem ich nicht sicher bin, ob ich Spring-Konventionen befolge, ist unten gezeigt.
// Construct a new object that will be created in the database
RecordDto record = new RecordDto();
// Or should I be using some bean factory?
RecordDto record = RecordDtoFactory.get();
_ "(...) es scheint, als ob Beans die bevorzugte Methode zum Erstellen von Objekten zur Verwendung in der Geschäftslogik sind" _ - Zitat erforderlich. – kryger
@kryger Ich habe dem ersten Absatz im Abschnitt "Einführung in den Spring IoC-Container und Beans" der Spring Framework-Dokumentation eine Referenz hinzugefügt. –
Ja, aber Ihre Frage ist über * Business/Domain-Objekte * was es nicht, worüber die Spring Docs sprechen. Ich habe persönlich noch nie ein Projekt gesehen, das Domänenobjekte auf diese Weise erstellt und verwaltet, deshalb finde ich die * "bevorzugte Art Objekte zu erstellen" * nur eine Meinung. – kryger