Dieser Artikel vermittelt Ihnen relevantes Wissen über Java Das Spring-Framework ist ein IoC-Container, der Bean verwaltet. Daher ist Bean natürlich eine wichtige Ressource in Spring. Wie viele Arten gibt es? Schauen wir es uns gemeinsam an, ich hoffe, es wird für alle hilfreich sein.
Empfohlene Studie: „Java-Video-Tutorial“
Das Spring-Framework ist ein IoC-Container, der Beans verwaltet. Beans sind also von Natur aus wichtige Ressourcen im Frühling. Was bedeutet also der Umfang einer Bean? Wie viele Arten gibt es? Werfen wir als nächstes einen Blick darauf.
PS: Öffentliche Klassen in Java können Beans oder Java Beans heißen.
Der Geltungsbereich einer Bean bezieht sich auf einen bestimmten Verhaltensmodus der Bean im gesamten Spring-Framework. Der Singleton-Bereich bedeutet beispielsweise, dass es im gesamten Spring nur eine Kopie der Bean gibt und diese global geteilt wird. Wenn jemand den Wert ändert, liest eine andere Person den geänderten Wert.
Zum Beispiel definieren wir in Spring einen Singleton-Bean-Objektbenutzer (der Standardbereich ist Singleton. Der spezifische Implementierungscode lautet wie folgt:
@Component public class UserBean { @Bean public User user() { User user = new User(); user.setId(1); user.setName("Java"); // 此行为重点:用户名称为 Java return user; } }
Dann verwenden und ändern wir das Benutzerobjekt in Klasse A, den spezifischen Implementierungscode). lautet wie folgt:
@Controller public class AController { @Autowired private User user; public User getUser() { User user = user; user.setName("MySQL"); // 此行为重点:将 user 名称修改了 return user; } }
Schließlich wird das Benutzerobjekt auch in Klasse B verwendet. Der spezifische Implementierungscode lautet wie folgt:
@Controller public class BController { @Autowired private User user; public User getUser() { User user = user; return user; } }
Wenn wir zu diesem Zeitpunkt auf die getUser-Methode im B-Objekt zugreifen, werden wir feststellen, dass die Der Benutzername ist derzeit Klasse A. „MySQL“ wird in „MySQL“ anstelle des ursprünglichen „Java“ geändert, was bedeutet, dass der Bean-Objektbenutzer standardmäßig den Singleton-Bereich verwendet. Wenn dieses Singleton-Objekt irgendwo geändert wird, erhalten andere Klassen bei einem erneuten Aufruf einen geänderten Wert.
Im Frühjahr gibt es fünf gängige Bereiche von Bean:
2.1 SingletonOffizielle Beschreibung: (Standard) Bezieht eine einzelne Bean-Definition auf eine einzelne Objektinstanz für jeden Spring IoC-Container.
Szenario: Normalerweise verwenden
statelessBeans diesen Bereich. Statuslos bedeutet, dass der Eigenschaftsstatus des Bean-Objekts nicht aktualisiert werden muss.
Hinweis: Spring wählt diesen Bereich standardmäßig aus.
2.2-PrototypOffizielle Beschreibung: Erweitert eine einzelne Bean-Definition um eine beliebige Anzahl von Objektinstanzen.
Szenario: Normalerweise verwenden
zustandsbehafteteBeans diesen Bereich.
2.3 AnfrageOffizielle Beschreibung: Bezieht sich auf den Lebenszyklus einer einzelnen HTTP-Anfrage. Das heißt, jede HTTP-Anfrage verfügt über eine eigene Instanz einer Bean, die auf der Rückseite einer einzelnen Bean-Definition erstellt wird Kontext eines webfähigen Spring ApplicationContext.
Szenario: Eine gemeinsam genutzte HTTP-Anfrage- und Antwort-Bean.
Hinweis: Beschränkt auf die Verwendung im Spring MVC-Framework.
2.4-Sitzung
Offizielle Beschreibung: Bezieht eine einzelne Bean-Definition auf den Lebenszyklus einer HTTP-Sitzung ein. Nur gültig im Kontext eines webfähigen Spring ApplicationContext.
Szenario: Shared Bean einer Benutzersitzung, zum Beispiel: Aufzeichnen der Anmeldeinformationen eines Benutzers.
Hinweis: Beschränkt auf die Verwendung im Spring MVC-Framework.
2.5-Anwendung
Offizielle Beschreibung: Bezieht eine einzelne Bean-Definition auf den Lebenszyklus eines ServletContext ein. Nur gültig im Kontext eines webfähigen Spring ApplicationContext.
Szenario: Kontextinformationen von Webanwendungen, z. B. das Aufzeichnen gemeinsam genutzter Informationen einer Anwendung.
Hinweis: Beschränkt auf die Verwendung im Spring MVC-Framework.
3. Bereichseinstellung
Wir können den Bereich der Bean über die @Scope-Annotation festlegen. Es gibt zwei Möglichkeiten, ihn festzulegen:
Legen Sie die von ConfigurableBeanFactory und WebApplicationContext bereitgestellten SCOPE_XXX-Variablen fest, z. B. @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE).
Der spezifische Einstellungscode lautet wie folgt:
Der Umfang einer Bean bezieht sich auf ein bestimmtes Verhaltensmuster der Bean im gesamten Spring-Framework. Es gibt 5 gemeinsame Bereiche von Bean: Singleton (Einzelfallbereich), Prototyp (Prototypbereich), Anfrage (Anforderungsbereich), Anwendung (globaler Bereich). Beachten Sie nur die letzten drei Funktionen verfügbar im Spring MVC-Framework.
Empfohlenes Lernen: „Java-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonDetaillierte Java-Analyse des Bean-Bereichs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!