Весенние вопросы конфигурации - PullRequest
2 голосов
/ 15 декабря 2010

Я просто вхожу в Spring (самостоятельно, поэтому мне некому задавать глупые вопросы).

У меня есть пара вопросов о конфигурации Spring (я использую 3.0).Читая руководство, он говорит, что «основная» конфигурация - это та, которая относится к контейнеру IoC, который создает все ваши компоненты.Таким образом, когда вы создаете экземпляр ApplicationContext, вам нужно передать ему xml с битами конфигурации для всех ваших bean-компонентов.

В любом случае, когда вы используете веб-инфраструктуру MVC, вы создаете экземпляр DispatcherServlet, затем создаете XML-файл с именем, включающим конфигурацию сервлета, и помещаете туда свои вещи.Вопрос первый: это все?Я имею в виду, что xml-файл означает те же файлы, которые я мог передать конструктору applicationcontext, или это другое?Должен ли я создавать другие файлы, если я хочу настроить весь текст приложения?Как?

Идя дальше, я вижу, что сервлету диспетчера может потребоваться больше настроек.Например, если вы хотите настроить представления, вы должны написать некоторую конфигурацию, если вы хотите разрешить компонент просмотра и подобные ситуации.Сейчас я вижу много уроков, говорящих о файле views.xml ... Это даже не упоминается в руководстве (cntrl + f не найден).Интересно, если это файл, который создают программисты, затем включить в DispatcherServlet или это какой-то компонент по умолчанию, который читает какой-то компонент ... Я запутался в этом.

Мне бы хотелось узнать больше о том, как соотносится вся конфигурация ApplicationContext и диспетчерский сервлет.Более того, если есть другие XML-файлы, я хотел бы знать, где найти ресурсы об этом, потому что документы очень запутанные.

Спасибо

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

вы также можете разделить ваш applicationContext или servlet.xml, просто определив несколько файлов в вашем web.xml

<init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    /WEB-INF/spring/spring-beans1.xml
    /WEB-INF/spring/spring-beans2.xml
  </param-value>
</init-param>

посмотрите на этот вопрос Используйте ContextLoaderListener в соответствии с DispatchServlet

Когда я начал использовать Spring, мне нужно было понять, что по умолчанию контекст приложения был singleton , а объем DispatcherServlet - запрос . Это означает, что хотя приложение ApplicationContext и DispatcherServlet запускаются при запуске приложения, если вы получаете бин из контекста приложения, это всегда один и тот же объект , пока приложение работает, а если вы bean-компонент из servlet.xml , он всегда создается заново для каждого http-запроса.

см. http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes

applicationContext всегда автоматически доступен в servlet.xml

Вы также можете получить приложениеContext самостоятельно, используя http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/context/support/WebApplicationContextUtils.html

3 голосов
/ 15 декабря 2010

В любом случае, когда вы используете веб-инфраструктуру MVC, вы создаете экземпляр DispatcherServlet, затем создаете файл XML с именем, включающим конфигурацию сервлета, и помещаете туда свои вещи.Вопрос первый: это все?Я имею в виду, что xml-файл означает те же файлы, которые я мог передать конструктору applicationcontext, или это другое?Должен ли я создавать другие файлы, если я хочу настроить весь текст приложения?Как?

Хотя теоретически вы можете определить все компоненты в одном монолитном контексте веб-приложения, обычно считается хорошей практикой разделять контексты по функциональности.

Например,

  • один контекст определит веб-контроллеры spring mvc
  • один определит уровень обслуживания
  • один определит уровень постоянства / dao

И выимпортирует эти контексты в основной веб-контекст, используя объявления <import ...>.

Вот соответствующий раздел в ссылках на пружину:

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