In web projects managed by spring, such as Struts and spring projects, after configuration, the defined service can be used directly in Struts. But if you want to use service or dao in an ordinary tool class, a null pointer will be reported, because this ordinary Java class is not under spring management and cannot use the service injected by spring.
The following is a method that allows ordinary tool classes to use service.
Define a class 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); } }
Then add this class to the spring configuration file,
Then you can get the injected object in any ordinary tool class based on the id of the bean configured in spring
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()); } }
In addition , please note:
articleService
ArticleService articleService = (ArticleService) SpringTool.getBean("articleService"); Related articles:
Detailed explanation of unknown injection methods in Java Spring
How to inject Service in Java Filter
The above is the detailed content of A method to teach you how to use spring to inject service and dao in ordinary Java classes. For more information, please follow other related articles on the PHP Chinese website!