Моя проблема заключается в том, как реализовать выборочную загрузку весенних фасолей в начале веб-приложения.Как выборочно загружать бобы при начале весны
Фон Наша заявка основана на J2EE и Spring. Мы запускаем одно и то же веб-приложение на разных управляемых серверах. На некоторых из этих управляемых серверов мы запускаем только веб-службу, но в других случаях нам также нужно запускать такие службы, как отчет, планировщик и т. Д. Все эти службы настроены как весна в конфигурационных файлах весенней конфигурации. Поэтому мы хотим отключить некоторые неиспользуемые компоненты, когда вы запускаете серверы с помощью веб-сервиса.
Проблемы, Я попытался переопределить метод customizeContext
в org.springframework.web.context.ContextLoaderListener
, чтобы удалить неиспользуемые компоненты из контекста. (Я знаю, что это не очень хорошая идея, чтобы удалить загруженные бобы вместо того, чтобы остановить их загрузку в первую очередь. Это потому, что я не мог понять, как это реализовать). Однако я получил java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
.
После некоторого расследования я понял, что BeanFactory
здесь не может быть использован, но я как бы застрял и не знаю, как реализовать эту функцию. Может ли кто-нибудь помочь мне в этом, пожалуйста? Либо прекращение загрузки бобы в весну во время начала, либо удаление боба из Весны, когда оно только начинается, будет работать для меня.
Ниже приведен мой код для переопределения метода customizeContext
.
@Override
protected void customizeContext(ServletContext servletContext, ConfigurableWebApplicationContext applicationContext) {
super.customizeContext(servletContext, applicationContext);
ConfigurableListableBeanFactory configurableListableBeanFactory = applicationContext.getBeanFactory();
BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) configurableListableBeanFactory;
beanDefinitionRegistry.removeBeanDefinition("testBean");
}
Пожалуйста, добавьте версию пружинный вы хотите это для, так как она сильно отличается от 2.5, 3.x и 4.x ... –
Спасибо за ваше предложение. Мы используем Spring 3.0.5 в этом проекте и не планируем обновлять его в ближайшем будущем. –