Spring Mvc образец приложения, путаница аннотации - PullRequest
7 голосов
/ 01 июля 2010

Немного смущен, базовое весеннее приложение MVC имеет это:

приложение-config.xml

<context:component-scan base-package="org.springframework.samples.mvc.basic" />

и mvc-config.xml имеет:

<!-- Configures the @Controller programming model -->
    <mvc:annotation-driven />
  1. Вам действительно нужны оба?

  2. для компонентного сканирования, означает ли это, что если я не укажу правильный путь к пакету, мои маркеры @Controller и @Service не будут работать? Если мне нужно более одного пакета, я просто дублирую запись?

Я пытался использовать только mvc: annotation-based, но это не сработало, мне пришлось поместить com.example.web.controllers в xml-узел component-scan, чтобы он работал.

Ответы [ 2 ]

11 голосов
/ 01 июля 2010

контекст: компонентное сканирование ясно

Сканирует путь к классам для аннотированных компонентов, которые будут автоматически зарегистрированы как Spring bean . По умолчанию будут обнаружены предоставленные Spring стереотипы @Component, @Repository, @Service и @Controller.

Так что @Controller - это просто бин Spring. Больше ничего.

И

mvc: управляемый аннотациями

регистрирует HandlerMapping и HandlerAdapter, необходимые для отправки запросов вашим @ Controllers

Что похоже на

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

Если мне нужно более одного пакета, я просто дублирую запись?

Вы можете, если хотите. context: component-scan - это просто постпроцессор EJB .

<context:component-scan base-package="br.com.app.view.controller"/>
<context:component-scan base-package="br.com.app.service"/>

или

Использование списка пакетов через запятую для поиска аннотированных компонентов.

<context:component-scan base-package="br.com.app.view.controller,br.com.app.service"/>
1 голос
/ 01 июля 2010
  1. mvc:annotation-driven позволяет настроить поведение Spring MVC.Подробности см. В документации . Для базового использования Spring MVC он вам не нужен.
  2. Если вам нужно более одного пакета, просто укажите родительский: <context:component-scan base-package="org.springframework.samples.mvc" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...