我认为此链接演示了在任何地方获取应用程序上下文的最佳方法,即使在非 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;
}
}
在应用程序上下文中添加条目.xml
<bean id="applicationContextProvider"
class="com.java2novice.spring.ApplicationContextProvider"/>
在注释情况下(而不是应用程序上下文.xml)
@Component
public class ApplicationContextProvider implements ApplicationContextAware{
...
}
获取类似如下的上下文
TestBean tb = ApplicationContextProvider.getApplicationContext().getBean("testBean", TestBean.class);
干杯!!