然後就可以了,就可以在任何一個普通的工具類裡,根據spring裡配置好的bean的id,得到這個注入好的物件了"/> 然後就可以了,就可以在任何一個普通的工具類裡,根據spring裡配置好的bean的id,得到這個注入好的物件了">

首頁  >  文章  >  Java  >  一個方法教你在普通Java類別中使用spring注入service、dao

一個方法教你在普通Java類別中使用spring注入service、dao

php是最好的语言
php是最好的语言原創
2018-08-04 14:05:274477瀏覽

在spring管理的web項目裡,譬如Struts和spring的項目,配置好後,Struts裡就可以直接使用定義好的service。但是如果要在普通的工具類別裡,使用service或dao,就會報空指針,因為這個普通的Java類別並不在spring管理下,不能使用spring注入的service。

下面講一個方法,讓普通工具類別也能使用service。

定義一個類別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);
	}
}

然後將這個類,加入到spring的設定檔裡,

然後就可以了,就可以在任何一個普通的工具類別裡,根據spring裡配置好的bean的id,得到這個注入好的物件了

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

一個方法教你在普通Java類別中使用spring注入service、dao

#################################相關文章:#########Java Spring中不為人知的注入方式詳解#############如何在Java Filter 中註入 Service#######

以上是一個方法教你在普通Java類別中使用spring注入service、dao的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn