2013-04-19 3 views
0

Я работаю над веб-приложением, и я использую Spring MVC. У него есть один сервлет. Поэтому, если я прав, он должен иметь один корневой контекст приложения и дополнительный контекст приложения для этого сервлета. Бинс в контексте приложения сервлета может обращаться к компонентам в контексте корневого приложения. Однако, скажем, приложение началось, и я хочу добавить некоторые компоненты в корневой контекст приложения, как мне следует продолжить? В принципе, у меня есть некоторые bean-конфиги в «extra-beans.xml». Я хочу добавить их в корневой контекст приложения, но не в точку init, но через некоторое время после запуска веб-приложения. Как это сделать? Кажется, что-то вродеКонтексты Spring MVC: добавление бобов в корневой контекст приложения

AbstractApplicationContext rootContext = new ClassPathXmlApplicationContext(new String[]{"additional-beans.xml"}); 

с одним из моих контроллеров не добавит дополнительных компонентов в контекст корневого приложения. Но тогда, где они добавляются? Возможно ли это? БЛАГОДАРЯ)

+0

почему вы хотите отложить добавление этих бобов к корню контекст? –

ответ

0

Вы можете использовать Lazy иницилизации бобы

<bean id="myBean" class="net.spring.ioc.MyBean" 
     lazy-init="true" /> 

PS: Мое предложение заключается в использовании WebApplicationContext

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class> 
         org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 

http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

+0

спасибо), но я не могу этого сделать. Дополнительная-beans.xml может быть изменена после начала. Поэтому я хочу изменить содержимое файла, а затем загрузить его программно –

+0

Возможно, это полезно http://stackoverflow.com/questions/797894/dynamically-change-spring-beans –