В чем разница между и <контекст: Annotation-Config /> на сервлете?

StackOverflow https://stackoverflow.com/questions/3977973

  •  09-10-2019
  •  | 
  •  

Вопрос

Я мигрирую с весны 2,5 до весны 3.

Они ввели <mvc:annotation-driven /> который делает немного черной магии. Ожидается, что это будет объявлено только в файле конфигурации сервлета.

Весной 2.5 я только что использовал <context:annotation-config /> и <context:component-scan base='...'/> Теги объявлены как в application-context.xml И диспетчерская конфигурация сервлета XML с соответствующими базовыми пакетами для сканирования.

Так что мне интересно, в чем разница между mvc:annotation-driven и context:annotation-config Теги на конфигурации сервлета и что я могу устранить весной 3 файла конфигурации?

Это было полезно?

Решение

<context:annotation-config> объявляет поддержку общих аннотаций, таких как @Required, @Autowired, @PostConstruct, и так далее.

<mvc:annotation-driven /> объявляет явную поддержку контроллеров MVC с аннотацией (т.е. @RequestMapping, @Controller, хотя поддержка тем является поведение по умолчанию), а также добавление поддержки для декларативной проверки через @Valid и кузов сообщений, маршаллинг с @RequestBody/ResponseBody.

Другие советы

Также есть еще подробнее об использовании <mvc:annotation-driven /> в Весенние документы. Отказ В двух словах, <mvc:annotation-driven /> Дает вам больший контроль над внутренней работой весны MVC. Вам не нужно использовать его, если вам не нужна одна или несколько функций, изложенных в вышеупомянутом разделе документов.

Кроме того, существуют и другие теги «ориентированные на аннотации» для предоставления дополнительных функциональных возможностей в других весенних модулях. Например, <transaction:annotation-driven /> позволяет использовать аннотацию @transaction, <task:annotation-driven /> требуется для @scheduled et al ...

MVC: аннотация Это тег, добавленный весной 3.0, который делает следующее:

  1. Настраивает преобразования типа пружины 3 типа (альтернатива имуществу)
  2. Добавляет поддержку полей формата форматирования с @nomberformat
  3. Добавляет поддержку даты форматирования, календаря и поля Joda с @dateTimeFormat, если время Joda находится на классе
  4. Добавляет поддержку для проверки входов @Controller с @Valid, если поставщик JSR-303 находится на классе
  5. Добавляет поддержку поддержки для чтения и записи XML, если JAXB находится в классе (преобразование HTTP-сообщений с @ request Codybody)
  6. Добавляет поддержку для чтения и записи JSON, если Jackson находится на классе (вдоль тех же строк, что и # 5)

Контекст: Annotation-ConfigИщете аннотации на бобах в том же контексте приложений, он определяется и объявляет поддержку всех общих аннотаций, таких как @OUTOWIED, @Resource, @required, @postconstruct etc и т. Д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top