Я имею дело с веб-приложением Spring MVC, которое загружается с помощью DispatcherServlet
. Он создает XmlWebApplicationContext
, который управляет всем приложением:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Теперь есть несколько модулей, которые должны быть загружены во время выполнения с помощью ContextSingletonBeanFactoryLocator
. Поэтому каждый модуль имеет свой собственный ClasspathXmlApplicationContext
. Чтобы модуль мог ссылаться на компоненты из XmlWebApplicationContext
, он должен быть присоединен к XmlWebApplicationContext
, чтобы сформировать иерархию контекста, в которой XmlWebApplicationContext
должен играть роль parent и ClasspathXmlApplicationContext
модуля роль дочернего контекста. К сожалению, я не могу соединить их с помощью
<beans>
<bean id="moduleContext"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
...
</constructor-arg>
<constructor-arg ref="parentContext" />
</bean>
</beans>
, потому что я пока не нашел способа присвоить WebApplicationContext
имя parentContext
. Я что-то упустил или есть лучший / более простой способ добиться того же другим способом?