Then that's it, you can use it in any ordinary tool class according to The id of the bean configured in spring is obtained by the injected object."/> Then that's it, you can use it in any ordinary tool class according to The id of the bean configured in spring is obtained by the injected object.">

Home >Java >javaTutorial >A method to teach you how to use spring to inject service and dao in ordinary Java classes

A method to teach you how to use spring to inject service and dao in ordinary Java classes

php是最好的语言
php是最好的语言Original
2018-08-04 14:05:274556browse

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

A method to teach you how to use spring to inject service and dao in ordinary Java classes

in

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn