In von Spring verwalteten Webprojekten wie Struts und Spring-Projekten kann der definierte Dienst nach der Konfiguration direkt in Struts verwendet werden. Wenn Sie jedoch Service oder Dao in einer gewöhnlichen Tool-Klasse verwenden möchten, wird ein Nullzeiger gemeldet, da diese gewöhnliche Java-Klasse nicht unter Spring-Verwaltung steht und den von Spring injizierten Dienst nicht verwenden kann.
Das Folgende ist eine Methode, die es gewöhnlichen Werkzeugklassen ermöglicht, Dienste zu nutzen.
Definieren Sie eine Klasse 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); } }
und fügen Sie diese Klasse dann zur Spring-Konfigurationsdatei hinzu,
Dann können Sie das injizierte Objekt in jeder gewöhnlichen Werkzeugklasse basierend auf der im Frühjahr konfigurierten Bean-ID erhalten Außerdem beachten Sie bitte: in Verwandte Artikel: Unbekannte Injektionsmethoden in Java Spring Ausführliche Erklärung Das obige ist der detaillierte Inhalt vonEine Methode, die Ihnen beibringt, wie Sie mit Spring Service und Dao in gewöhnliche Java-Klassen einfügen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!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());
}
}
ArticleService articleService = (ArticleService) SpringTool.getBean("articleService"); 中的articleService