Dans les projets web gérés par spring, comme Struts et les projets spring, après configuration, le service défini peut être utilisé directement dans Struts. Cependant, si vous souhaitez utiliser service ou dao dans une classe d'outils ordinaire, un pointeur nul sera signalé, car cette classe Java ordinaire n'est pas sous gestion Spring et ne peut pas utiliser le service injecté par Spring.
Ce qui suit est une méthode qui permet aux classes d'outils ordinaires d'utiliser le service.
Définissez une classe SpringTool
/** * 通过该类即可在普通工具类里获取spring管理的bean * @author wolf * */ public final class SpringTool implements ApplicationContextAware { private static ApplicationContext applicationContext = null; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (SpringTool.applicationContext == null) { SpringTool.applicationContext = applicationContext; System.out.println( "========ApplicationContext配置成功,在普通类可以通过调用ToolSpring.getAppContext()获取applicationContext对象,applicationContext=" + applicationContext + "========"); } } public static ApplicationContext getApplicationContext() { return applicationContext; } public static Object getBean(String name) { return getApplicationContext().getBean(name); } }
puis ajoutez cette classe au fichier de configuration Spring,
Ensuite, vous pouvez obtenir l'objet injecté dans n'importe quelle classe d'outils ordinaire en fonction de l'identifiant du bean configuré au printemps
import app.util.spring.SpringTool; public class Test { public void print() { ArticleService articleService = (ArticleService) SpringTool.getBean("articleService"); Article article = articleService.queryById(756); System.out.println(article.getTitle()); } }
Veuillez également noter :
n'est pas disponible dans ArticleService articleService = (ArticleService) SpringTool.getBean("articleService"); 中的articleService
Articles connexes :
Pas dans Java Spring Explication détaillée des méthodes d'injection bien connues
Comment injecter un service dans un filtre Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!