Spring - Bean Definition
Die Objekte, die das Rückgrat Ihrer Anwendung bilden und vom Spring IoC-Container verwaltet werden, werden aufgerufen beans. Eine Bean ist ein Objekt, das von einem Spring IoC-Container instanziiert, zusammengestellt und anderweitig verwaltet wird. Diese Beans werden mit den Konfigurationsmetadaten erstellt, die Sie dem Container bereitstellen. Zum Beispiel in Form von XML <bean /> -Definitionen, die Sie bereits in den vorherigen Kapiteln gesehen haben.
Die Bean-Definition enthält die aufgerufenen Informationen configuration metadata, die benötigt wird, damit der Container Folgendes weiß:
- So erstellen Sie eine Bohne
- Details zum Lebenszyklus von Bean
- Beans Abhängigkeiten
Alle oben genannten Konfigurationsmetadaten werden in eine Reihe der folgenden Eigenschaften übersetzt, aus denen jede Bean-Definition besteht.
Sr.Nr. | Eigenschaften & Beschreibung |
---|---|
1 | class Dieses Attribut ist obligatorisch und gibt die Bean-Klasse an, die zum Erstellen der Bean verwendet werden soll. |
2 | name Dieses Attribut gibt die Bean-ID eindeutig an. In XML-basierten Konfigurationsmetadaten verwenden Sie die Attribute id und / oder name, um die Bean-IDs anzugeben. |
3 | scope Dieses Attribut gibt den Bereich der Objekte an, die aus einer bestimmten Bean-Definition erstellt wurden, und wird im Kapitel Bean-Bereiche erläutert. |
4 | constructor-arg Dies wird zum Einfügen der Abhängigkeiten verwendet und wird in den folgenden Kapiteln erläutert. |
5 | properties Dies wird zum Einfügen der Abhängigkeiten verwendet und wird in den folgenden Kapiteln erläutert. |
6 | autowiring mode Dies wird zum Einfügen der Abhängigkeiten verwendet und wird in den folgenden Kapiteln erläutert. |
7 | lazy-initialization mode Eine verzögert initialisierte Bean weist den IoC-Container an, eine Bean-Instanz zu erstellen, wenn sie zum ersten Mal angefordert wird, und nicht beim Start. |
8 | initialization method Ein Rückruf, der aufgerufen werden soll, sobald alle erforderlichen Eigenschaften für die Bean vom Container festgelegt wurden. Dies wird im Kapitel über den Lebenszyklus von Bohnen erläutert. |
9 | destruction method Ein Rückruf, der verwendet wird, wenn der Container mit der Bean zerstört wird. Dies wird im Kapitel über den Lebenszyklus von Bohnen erläutert. |
Spring-Konfigurationsmetadaten
Der Spring IoC-Container ist vollständig von dem Format entkoppelt, in dem diese Konfigurationsmetadaten tatsächlich geschrieben wurden. Im Folgenden sind die drei wichtigen Methoden zum Bereitstellen von Konfigurationsmetadaten für den Spring Container aufgeführt:
- XML-basierte Konfigurationsdatei.
- Anmerkungsbasierte Konfiguration
- Java-basierte Konfiguration
Sie haben bereits gesehen, wie XML-basierte Konfigurationsmetadaten für den Container bereitgestellt werden. Lassen Sie uns jedoch ein weiteres Beispiel einer XML-basierten Konfigurationsdatei mit verschiedenen Bean-Definitionen sehen, einschließlich verzögerter Initialisierung, Initialisierungsmethode und Zerstörungsmethode.
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple bean definition -->
<bean id = "..." class = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with lazy init set on -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with initialization method -->
<bean id = "..." class = "..." init-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with destruction method -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
Sie können Spring Hello World Example überprüfen, um zu verstehen, wie Spring Beans definiert, konfiguriert und erstellt werden.
Wir werden die annotationsbasierte Konfiguration in einem separaten Kapitel behandeln. Es wird absichtlich in einem separaten Kapitel behandelt, da wir möchten, dass Sie einige andere wichtige Spring-Konzepte verstehen, bevor Sie mit der Programmierung mit Spring Dependency Injection with Annotations beginnen.