Я имею дело с веб-приложением 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
.Чтобы модуль мог ссылаться на bean-компоненты из XmlWebApplicationContext
, его следует присоединить к XmlWebApplicationContext
, чтобы сформировать иерархию контекста, в которой XmlWebApplicationContext
должен играть роль родителя, а ClasspathXmlApplicationContext
модуля - рольдочерний контекст.К сожалению, я не могу соединить их, используя
<beans>
<bean id="moduleContext"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
...
</constructor-arg>
<constructor-arg ref="parentContext" />
</bean>
</beans>
, потому что пока не нашел способа дать WebApplicationContext
имя parentContext
.Я что-то упустил или есть лучший / более простой способ добиться того же самого по-другому?