Przechodzę z wersji Spring 2.5 na Spring 3.
Wprowadzili <mvc:annotation-driven />
coś, co robi czarną magię. Oczekuje się, że będzie to zadeklarowane tylko w pliku konfiguracyjnym serwletu.
Wiosną 2.5 właśnie użyłem <context:annotation-config />
i <context:component-scan base='...'/>
zadeklarowałem tagi zarówno w application-context.xml
XML konfiguracji serwletu dyspozytora, jak i odpowiednie pakiety bazowe do skanowania.
Zastanawiam się więc, jaka jest różnica między tagami mvc:annotation-driven
i context:annotation-config
w konfiguracji serwletu i co mogę wyeliminować w plikach konfiguracyjnych Spring 3?
źródło
<context:annotation-config>
w każdym kontekście.<mvc:annotation-driven>
nie jest bezcelowe, jest po prostu niewłaściwie nazwany. W rzeczywistości konfiguruje obsługę nowych funkcji Spring MVC, takich jak deklaratywna walidacja z@Valid
, konwersja wiadomości HTTP z@RequestBody
/@ResponseBody
, nowa architektura konwersji pól itp.Istnieje również kilka szczegółów na temat stosowania
<mvc:annotation-driven />
w docs wiosny . Krótko mówiąc,<mvc:annotation-driven />
zapewnia większą kontrolę nad wewnętrznym działaniem Spring MVC. Nie musisz go używać, chyba że potrzebujesz co najmniej jednej funkcji przedstawionej we wspomnianej sekcji dokumentacji.Dostępne są również inne tagi „sterowane adnotacjami”, które zapewniają dodatkową funkcjonalność w innych modułach Spring. Na przykład
<transaction:annotation-driven />
umożliwia korzystanie z adnotacji @Transaction,<task:annotation-driven />
jest wymagane dla @Scheduled et al ...źródło
mvc: annotation-Based to tag dodany w wersji Spring 3.0, który wykonuje następujące czynności:
context: annotation-config Wyszukuje adnotacje w ziarnach w tym samym kontekście aplikacji, w którym jest zdefiniowany, i deklaruje obsługę wszystkich ogólnych adnotacji, takich jak @Autowired, @Resource, @Required, @PostConstruct itp.
źródło
@Autowired, @Resource, @Required, @PostConstruct
ORAZ@RequestBody, @ResponseBody
- wszystkie te adnotacje, będę musiał dodać oba temvc:annotation-driven
context:annotation-config
tagi w mojej konfiguracji?