에 추가합니다. 그러면 빈의 ID에 따라 일반 도구 클래스에서 사용할 수 있습니다. 스프링에 구성된 것은 주입된 물체에 의해 얻어집니다."/> 에 추가합니다. 그러면 빈의 ID에 따라 일반 도구 클래스에서 사용할 수 있습니다. 스프링에 구성된 것은 주입된 물체에 의해 얻어집니다.">

 >  기사  >  Java  >  Spring을 사용하여 일반 Java 클래스에 서비스와 DAO를 주입하는 방법을 가르치는 방법

Spring을 사용하여 일반 Java 클래스에 서비스와 DAO를 주입하는 방법을 가르치는 방법

php是最好的语言
php是最好的语言원래의
2018-08-04 14:05:274505검색

Struts, Spring 프로젝트 등 Spring으로 관리되는 웹 프로젝트에서는 설정 후 정의된 서비스를 Struts에서 바로 사용할 수 있습니다. 그러나 일반 도구 클래스에서 서비스나 dao를 사용하려는 경우 널 포인터가 보고됩니다. 왜냐하면 이 일반 Java 클래스는 스프링 관리 대상이 아니며 스프링에서 주입된 서비스를 사용할 수 없기 때문입니다.

다음은 일반 툴 클래스에서 서비스를 이용할 수 있도록 하는 방법이다.

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);
	}
}

그런 다음 이 클래스를 스프링 구성 파일에 추가하세요.

그러면 완료되었습니다. 일반 도구에서는 클래스, 봄에 구성된 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 알 수 없는 주입 방법에 대한 자세한 설명 in Spring

Java 필터에 서비스를 주입하는 방법

위 내용은 Spring을 사용하여 일반 Java 클래스에 서비스와 DAO를 주입하는 방법을 가르치는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.