이 링크 는 Bean이 아닌 클래스에서도 어디서나 응용 프로그램 컨텍스트를 얻는 가장 좋은 방법을 보여줍니다. 나는 그것이 매우 유용하다고 생각합니다. 당신도 똑같기를 바랍니다. 아래는 그것의 추상적 인 코드입니다
새 클래스 ApplicationContextProvider.java 만들기
package com.java2novice.spring;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextProvider implements ApplicationContextAware{
private static ApplicationContext context;
public static ApplicationContext getApplicationContext() {
return context;
}
@Override
public void setApplicationContext(ApplicationContext ac)
throws BeansException {
context = ac;
}
}
application-context.xml에 항목 추가
<bean id="applicationContextProvider"
class="com.java2novice.spring.ApplicationContextProvider"/>
어노테이션의 경우 (application-context.xml 대신)
@Component
public class ApplicationContextProvider implements ApplicationContextAware{
...
}
이와 같은 맥락을 얻으십시오.
TestBean tb = ApplicationContextProvider.getApplicationContext().getBean("testBean", TestBean.class);
건배!!