このリンクだと思いますは、非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);
乾杯!!