Heim  >  Artikel  >  Java  >  5 Möglichkeiten für Java-Klassen, Beans in Spring zu erhalten

5 Möglichkeiten für Java-Klassen, Beans in Spring zu erhalten

高洛峰
高洛峰Original
2017-01-23 11:00:241710Durchsuche

Es gibt viele Möglichkeiten, Beans in Spring zu erhalten:
Die erste: Speichern Sie das ApplicationContext-Objekt während der Initialisierung

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");

Hinweis: Diese Methode ist für diejenigen geeignet, die das verwenden Für eigenständige Anwendungen muss das Programm Spring manuell über die Konfigurationsdatei initialisieren.
Zweitens: Erhalten Sie das ApplicationContext-Objekt über die von Spring bereitgestellte Toolklasse

import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");

Erklärung:
1 Diese beiden Methoden eignen sich für B/S-Systeme, die das Spring-Framework verwenden, über den ServletContext Objekt Rufen Sie das ApplicationContext-Objekt ab und verwenden Sie es, um die erforderliche Klasseninstanz abzurufen.
2 Die erste Methode löst eine Ausnahme aus, und die zweite Methode gibt null zurück.
Dritte Methode: Von der abstrakten Klasse ApplicationObjectSupport geerbt

Beschreibung: Die ApplicationContext-Instanz kann einfach über die von der abstrakten Klasse ApplicationObjectSupport bereitgestellte Methode getApplicationContext() abgerufen werden, und dann können die Beans im Spring-Container sein erhalten. Wenn Spring initialisiert wird, wird das ApplicationContext-Objekt über die Methode setApplicationContext(ApplicationContext context) der abstrakten Klasse eingefügt.
Vierte Methode: Von der abstrakten Klasse WebApplicationObjectSupport geerbt

Erklärung: Ähnlich wie bei der obigen Methode erhalten Sie die WebApplicationContext-Instanz durch Aufrufen von getWebApplicationContext();
Fünfte Methode: Implementieren Sie die Schnittstelle ApplicationContextAware

Beschreibung: Implementieren Sie die Methode setApplicationContext(ApplicationContext context) dieser Schnittstelle und speichern Sie das ApplicationContext-Objekt. Wenn Spring initialisiert wird, wird das ApplicationContext-Objekt über diese Methode injiziert.

Obwohl Spring die letzten drei Methoden bereitstellt, um die entsprechende Klasse oder Schnittstelle in gewöhnlichen Klassen zu erben oder zu implementieren, um das ApplicationContext-Objekt von Spring zu erhalten, müssen Sie bei der Verwendung darauf achten, diese abstrakten Klassen oder Schnittstellen zu erben oder zu implementieren Die Java-Klasse der Schnittstelle muss in der Spring-Konfigurationsdatei (d. h. der Datei application-context.xml) konfiguriert werden, andernfalls ist das erhaltene ApplicationContext-Objekt null.

Im Folgenden wird gezeigt, wie Sie Beans im Spring-Container durch Implementierung der Schnittstelle ApplicationContextAware erhalten:
Passen Sie zunächst eine Klasse an, die die Schnittstelle ApplicationContextAware implementiert, und implementieren Sie die darin enthaltenen Methoden:

package com.ghj.tool;
 
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
 
public class SpringConfigTool implements ApplicationContextAware {// extends ApplicationObjectSupport{
 
 private static ApplicationContext ac = null;
 private static SpringConfigTool springConfigTool = null;
 
 public synchronized static SpringConfigTool init() {
 if (springConfigTool == null) {
  springConfigTool = new SpringConfigTool();
 }
 return springConfigTool;
 }
 
 public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
 ac = applicationContext;
 }
 
 public synchronized static Object getBean(String beanName) {
 return ac.getBean(beanName);
 }
}


Als nächstes konfigurieren Sie es in der Datei applicationContext.xml:

<bean id="SpringConfigTool" class="com.ghj.tool.SpringConfigTool"/>

Schließlich können Sie die entsprechende Bean im Spring-Container über den folgenden Code abrufen:

SpringConfigTool.getBean("beanId");

Beachten Sie, dass Sie den Spring-Container nicht über die folgenden Methoden erhalten können, wenn der Server die Initialisierung des Spring-Containers startet: Hilfe.

import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
  
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
wac.getBean(beanID);
Weitere verwandte Artikel über 5 Möglichkeiten für Java-Klassen, Beans im Frühjahr zu erhalten, finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn