Я думаю, що це посилання демонструє найкращий спосіб отримати контекст програми де завгодно, навіть у класі, що не належить до бобів. Я вважаю це дуже корисним. Сподіваюся, це те ж саме для вас. Нижче наведено його абстрактний код
Створіть новий клас 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);
Ура !!