Увімкнути значення анотаціїWebMvc


78

Я читав про javadoc @EnableWebMvc.

Але я не розумію, що означає ця анотація?

Чи можете ви це чітко викласти?

Відповіді:


101

Коли ви використовуєте код Java (на відміну від XML) для налаштування програми Spring, @EnableWebMvcдля ввімкнення Spring MVC використовується. Якщо ви ще не знайомі з підтримкою Spring для конфігурації Java, з цього варто почати .

@EnableWebMvcеквівалентно <mvc:annotation-driven />XML. Це дозволяє підтримувати @Controller-нотовані класи, які використовують @RequestMappingдля зіставлення вхідних запитів з певним методом. Ви можете прочитати детальну інформацію про те, що він налаштовує за замовчуванням і як налаштувати конфігурацію, у довідковій документації .


1
Що таке mvc: керований анотаціями?
Koray Tugay

"Це забезпечує підтримку класів, котрі анотуються @ Controller", неправильно. From Spring docs,To enable auto-detection of such @Controller beans, you can add component scanning
Rich

Це правильно. Без @EnableWebMvcцього @Controllerбоб - це просто боб, а не контролер. Це застосовується незалежно від того, знайдено це шляхом сканування компонентів або зареєстровано @Beanметодом.
Енді Уілкінсон,

50

Ласкаво просимо у світ весни. Щось потрібно зрозуміти, перш ніж зрозуміти, що @EnableWebMVCозначає анотація .

Spring традиційно підтримує два типи конфігурацій:

Ці анотації по суті реалізовані як частина MVC Java Config Design .

Розглянемо простий клас:

@EnableWebMvc
@Configuration
public class WebConfig {
}

Базових класів не існує. Ярої квасолі не видно .. Хм-м-м ..

Давайте підемо трохи далі:

  • Що це насправді забезпечує ..?

Ну, аби вам трохи більше набридло, це пропонує багато такого, як:

  1. Обробка запиту @MVC
  2. Глобальний валідатор JSR-303

і ще кілька.

Ага-а-а ... Але ваш додаток працює з ним правильно. Отже, де магія ..?

@EnableWebMVC <---- What's behind this..?

Це за цим:

@Retention(RetentionPolicy.RUNTIME)
@Import(DelegatingWebMvcConfiguration.class)
@Target(ElementType.TYPE)
public @interface EnableWebMvc {
}

Бачите, зараз ви могли б подумати, що як безглуздо користуватися @EnableWebMVC. Чи хотіли б ви:

Ви можете прочитати на:

Сподіваюся, це допоможе. :)


1

Додавання цієї анотації до класу @Configuration імпортує конфігурацію Spring MVC з WebMvcConfigurationSupport


1

Коли ми хочемо створити проект Spring Web MVC, нам потрібно додати необхідний імпорт із WebMvcConfigurationSupport. З цієї причини ми повинні використовувати @EnableWebMvcконфігурацію на основі Java. @ConfigurationМоже мати лише один клас @EnableWebMvc.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.