1. Contextloader fourni par le printemps
WebApplicationContext wac = contextloader.getCurrentWebApplicationContext (); wac.getBean (beanId);
Cette méthode ne dépend pas des servlets et ne nécessite pas d'injection. Cependant, il convient de noter que lorsque le serveur démarre et que le conteneur à ressort est initialisé, le conteneur à ressort ne peut pas être obtenu via cette méthode
2. Implémentez l'interface ApplicationContextAware
Définir les classes d'outils
classe publique SpringContextUtil implémente ApplicationContextAware {private static applicationContext ApplicationContext; // Spring Application Context Environment / ** * Implémentez la méthode de rappel de l'interface ApplicationContextAware et définissez l'environnement de contexte * @Param ApplicationContext * @throws beanSexception * / public void setApplicationContext (applicationContext ApplicationContext) lève-toi {SpringConTextUtil.ApplicationContext = applicationContext; } / ** * @return ApplicationContext * / public static applicationContext getApplicationContext () {return applicationContext; } / ** * Get Object * @param name * @return objet Une instance d'un bean enregistré avec le nom donné * @throws beanSexception * / Objet statique public getBean (nom de chaîne) lève BeanSexception {return applicationContext.getBean (name); } / ** * Obtenez un objet de type requiseType * Si le bean ne peut pas être converti par type, l'exception correspondante sera lancée (BeannotofreQuureTypeException) * @param nom de bean Nom de l'enregistrement * @param requisType Type * @return RETOUR applicationContext.getBean (nom, requiredType); } / ** * Si le beanfactory contient une définition de bean qui correspond au nom donné, return true * @param name * @return boolean * / public static boolean contientbean (name de chaîne) {return applicationContext.containsBean (name); } / ** * Déterminez si la définition de bean enregistrée avec un prénom est un singleton ou un prototype. * Si la définition de bean correspondant au nom donné n'est pas trouvée, une exception sera lancée (NosuchBeAndeFinitionException) * @param name * @return booléen * @throws NosuchBeAndeFinitionException * / public static boolean issingleton (String Name) lance NosuchBeandeDefinitionException {return applicationContext.issingleton (nom); } / ** * @param name * @return class le type de l'objet enregistré * @throws NosuchBeAndeFinitionException * / public static class getType (String Name) lève NosuchBeAndeFinitionException {return applicationContex.getType (name); } / ** * Si le nom de bean donné a des alias dans la définition du bean, ces alias seront renvoyés * @param name * @return * @throws nosuchBeAndefinitionException * / public static string [] getaliases (nom de chaîne) lance NosuchBeanDefinitionException {return applicationContext.getaliases (nom); }}3. Configurer les haricots
<! - SpringContextUtil Get Bean via le code -> <bean id = "SpringContextUtil" />
Résumer
Ce qui précède est plusieurs façons dont le printemps obtient des fèves dans le code. J'espère que le contenu de cet article sera utile à l'étude ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer.