Maison >Java >javaDidacticiel >5 façons pour les classes Java d'obtenir des beans au printemps

5 façons pour les classes Java d'obtenir des beans au printemps

高洛峰
高洛峰original
2017-01-23 11:00:241765parcourir

Il existe de nombreuses façons d'obtenir des beans au Spring. Pour résumer encore :
La première : sauvegarder l'objet ApplicationContext lors de l'initialisation

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

Remarque : cette méthode convient à ceux qui utilisent le. Le framework Spring. Les applications autonomes nécessitent que le programme initialise manuellement Spring via le fichier de configuration.
Deuxièmement : Obtenez l'objet ApplicationContext via la classe d'outils fournie par Spring

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");

Explication :
1 Ces deux méthodes conviennent aux systèmes B/S utilisant le framework Spring, via le ServletContext. object Obtenez l'objet ApplicationContext, puis utilisez-le pour obtenir l'instance de classe requise ;
2 La première méthode lève une exception lorsque l'acquisition échoue et la deuxième méthode renvoie null.
Troisième méthode : Hérité de la classe abstraite ApplicationObjectSupport

Description : Grâce à la méthode getApplicationContext() fournie par la classe abstraite ApplicationObjectSupport, vous pouvez facilement obtenir l'instance ApplicationContext puis obtenir les beans dans le conteneur Spring. Lorsque Spring est initialisé, l'objet ApplicationContext sera injecté via la méthode setApplicationContext (ApplicationContext context) de la classe abstraite.
Quatrième méthode : héritée de la classe abstraite WebApplicationObjectSupport

Explication : similaire à la méthode ci-dessus, obtenez l'instance WebApplicationContext en appelant getWebApplicationContext();
Cinquième méthode : implémentez l'interface ApplicationContextAware

Description : Implémentez la méthode setApplicationContext(ApplicationContext context) de cette interface et enregistrez l'objet ApplicationContext. Lorsque Spring est initialisé, l'objet ApplicationContext sera injecté via cette méthode.

Bien que Spring fournisse les trois dernières méthodes pour hériter ou implémenter la classe ou l'interface correspondante dans les classes ordinaires afin d'obtenir l'objet ApplicationContext de Spring, vous devez faire attention à l'héritage ou à l'implémentation de ces classes ou interfaces abstraites lorsque vous les utilisez. La classe java de l'interface doit être configurée dans le fichier de configuration Spring (c'est-à-dire le fichier application-context.xml), sinon l'objet ApplicationContext obtenu sera nul.

Ce qui suit montre comment obtenir des beans dans le conteneur Spring en implémentant l'interface ApplicationContextAware :

Personnalisez d'abord une classe qui implémente l'interface ApplicationContextAware et implémentez les méthodes à l'intérieur :

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);
 }
}


Ensuite, configurez-le dans le fichier applicationContext.xml :

<bean id="SpringConfigTool" class="com.ghj.tool.SpringConfigTool"/>
Enfin, vous pouvez récupérer le bean correspondant dans le conteneur Spring via le code suivant :

SpringConfigTool.getBean("beanId");
Notez que lorsque le serveur démarre l'initialisation du conteneur Spring, le conteneur Spring ne peut pas être obtenu par les méthodes suivantes :

import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
  
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
wac.getBean(beanID);

Ce qui précède est l'intégralité du contenu de ce article. J'espère qu'il sera utile à l'apprentissage de chacun.

Pour plus d'articles sur les 5 façons pour les classes Java d'obtenir des beans au printemps, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn