Смущен использованием ContextLoaderListener в Spring MVC - PullRequest
3 голосов
/ 16 ноября 2010

Я читаю книгу о Spring и Spring MVC и пробую пример приложения. Проблема в том, что это предварительная версия книги, а полный код еще не доступен для загрузки.

Я хочу, чтобы бины из моего сервисного уровня были доступны через веб-приложение. Должен ли я объявить их в двух файлах XML? (Один для сервисного уровня, а другой для веб-приложения?) Этот код приведен в книге для добавления в файл web.xml, но я не уверен, что это решает:

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

<context-param>
    <param-name>contextConfigLocation</param-name>
       <param-value>
          /WEB-INF/spitter-security.xml
          classpath:service-context.xml
          classpath:persistence-context.xml
          classpath:dataSource-context.xml
       </param-value>
</context-param>

Но в нем не указано, где находятся файлы service-context.xml и т. Д. Или какова структура папок. Как они попадают в путь к классам для доступа к "classpath:"?

Можно ли разместить этот xml-файл в одном месте, к которому будет иметь доступ как основное приложение, так и веб-приложение? Или мне нужно дважды объявлять свои bean-компоненты для развертывания в Tomcat?

Буду признателен за любую помощь, так как я очень смущен этим. Спасибо

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

Контекст корневого приложения (созданный ContextLoaderListener) является родительским контекста веб-приложения (созданного DispatcherServlet), поэтому все компоненты, объявленные в корневом контексте, доступны в контексте веб-приложения, так что вам не нужно дублировать их декларации.

Ресурс с префиксом classpath: находится в пути к классам, как объяснил Божо.

2 голосов
/ 16 ноября 2010

указанные выше xml-файлы находятся в корне пути к классам.то есть WEB-INF/classes. Подробнее см. Здесь

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