に追加します。これで、Bean の ID に応じて通常のツール クラスで使用できます。スプリングで構成されたオブジェクトは、射出されたオブジェクトによって取得されます。"/> に追加します。これで、Bean の ID に応じて通常のツール クラスで使用できます。スプリングで構成されたオブジェクトは、射出されたオブジェクトによって取得されます。">

ホームページ  >  記事  >  Java  >  Spring を使用して通常の Java クラスにサービスと Dao を注入する方法を教えるメソッド

Spring を使用して通常の Java クラスにサービスと Dao を注入する方法を教えるメソッド

php是最好的语言
php是最好的语言オリジナル
2018-08-04 14:05:274461ブラウズ

Struts や Spring プロジェクトなど Spring で管理される Web プロジェクトでは、設定後、定義されたサービスを Struts で直接使用できます。ただし、通常のツールクラスでserviceやdaoを使用したい場合、この通常のJavaクラスはSpringの管理下にないため、Springによって注入されたサービスを使用できないため、nullポインタが報告されます。

通常のツールクラスでもサービスを利用できるようにする方法について話しましょう。

クラス 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

Spring を使用して通常の Java クラスにサービスと Dao を注入する方法を教えるメソッド

にあります関連記事:

Javaの未知の注入メソッドを詳しく解説Spring

Java フィルターにサービスを挿入する方法

以上がSpring を使用して通常の Java クラスにサービスと Dao を注入する方法を教えるメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。