Il existe de nombreuses façons d'obtenir des haricots au printemps, et je vais le résumer à nouveau:
Le premier type: Enregistrez l'objet ApplicationContext lors de l'initialisation
ApplicationContext ac = new FileSystemXmlApplicationContext ("ApplicationContext.xml"); ac.getBean ("beanid"); Remarque: Cette méthode convient aux applications autonomes à l'aide du framework Spring, et le programme nécessite que le programme initialise manuellement le ressort via des fichiers de configuration.
Le deuxième type: 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 sc); ac1.getBean ("beanid"); ac2.getBean ("beanid"); illustrer:
1. Ces deux méthodes conviennent aux systèmes B / S à l'aide de Spring Framework, obtenez l'objet ApplicationContext via l'objet ServletContext, puis obtenez l'instance de classe requise via lui;
2. La première méthode lance une exception lorsque l'acquisition échoue, et la deuxième méthode renvoie NULL.
Le troisième type: hérité de la classe abstraite ApplicationObjectSupport
Remarque: La méthode GetApplicationContext () fournie par la classe abstraite ApplicationObjectSupport peut facilement obtenir l'instance ApplicationContext, puis obtenir le bean dans le conteneur de ressort. Lorsque Spring est initialisé, l'objet ApplicationContext sera injecté via la méthode setApplicationContext (ApplicationContext Context) de la classe abstraite.
Quatrième type: hérité de la classe abstraite WebApplicationObjectSupport
Remarque: Similaire à la méthode ci-dessus, obtenez l'instance WebApplicationContext en appelant getWebApplicationContext ();
Cinquième type: implémentation de l'interface applicationContextAware
Description: Implémentez la méthode setApplicationContext (ApplicationContext Context) de cette interface et enregistrez l'objet ApplicationContext. Lorsque le printemps est initialisé, l'objet ApplicationContext est injecté via cette méthode.
Bien que Spring fournit les trois dernières méthodes pour mettre en œuvre l'héritage ou la mise en œuvre de classes ou d'interfaces correspondantes dans des classes ordinaires pour obtenir des objets ApplicationContext de Spring, lorsque vous l'utilisez, vous devez prêter attention à l'héritage ou à la mise en œuvre de ces classes ou interfaces abstraites. Ou l'objet applicationContext obtenu sera nul.
Ce qui suit montre comment obtenir des haricots dans des conteneurs de printemps en implémentant l'interface applicationContextAware:
Tout d'abord, personnalisez 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 classConfigTool implémente ApplicationContext AC = null; SpringConfigTool statique privé SpringConfigTool = NULL; public synchronisé statique SpringConfigTool init () {if (springConfigTool == null) {springConfigTool = new SpringConfigTool (); } return springConfigTool; } public void setApplicationContext (applicationContext applicationContext) lève beanSexception {ac = applicationContext; } Objet statique synchronisé public getBean (string beanname) {return ac.getBean (beanname); }} Deuxièmement, configurez-le dans le fichier applicationContext.xml:
Copiez le code comme suit: <bean id = "SpringConfigTool" />
Enfin, vous pouvez obtenir le bean correspondant dans le conteneur à ressort via le code suivant:
La copie de code est la suivante: SpringConfigTool.getBean ("beanid");
Notez que lorsque le serveur démarre l'initialisation du conteneur à ressort, le conteneur à ressort ne peut pas être obtenu via 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 concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.