Spring не может видеть bean-компоненты между servlet-context и contextConfigLocation bean-компонентами - PullRequest
5 голосов
/ 02 марта 2012

У меня есть весенний проект MVC, настроенный так:

<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/spring-contexts/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/spring-contexts/configuration-context.xml</param-value>
</context-param>

Появляется, если я создаю bean-компонент в файле configuration-context.xml и ссылаюсь на bean-компонент в servlet-context.xml, он не может его найти. Они созданы как два разных контекста? Почему это происходит / работает, как это вообще?

1 Ответ

6 голосов
/ 02 марта 2012

Да, есть два контекста, сложенных друг на друга (родительский и дочерний контекст).

Бины из DispatcherServlet (servlet-context.xml) могут обращаться к бинам из ContextLoaderListener (configuration-context.xml), но не наоборот.

Итак, поместите базовый материал в configuration-context.xml и веб-страницу, связанную когда-то, в servlet-context.xml.

@ См. Также этот вопрос переполнения стека: ContextLoaderListener или нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...