Gdzieś czytałem, że Spring oferuje wygodę w porównaniu z konfiguracją. Ale ludzie z Spring wprowadzają tak wiele zmian w konfiguracji, że teraz jestem naprawdę zdezorientowany, jeśli chodzi o użycie konfiguracji xml lub adnotacji.
Chciałbym, aby ktokolwiek zasugerował pewną metodologię lub praktyczną zasadę przy użyciu XML i adnotacji.
Przykłady w SO pokazują, że wielu początkujących, takich jak ja, jest zdezorientowanych konfiguracją.
-
Wydaje mi się, że nie rozumiem funkcjonalności
<context:annotation-config>
i<context:component-scan>
.Z tego, co przeczytałem, wydaje się, że obsługują różne adnotacje (@Required, @Autowired itp. Vs @Component, @Repository, @Service itp.), Ale także z tego, co przeczytałem, rejestrują te same klasy postprocesora komponentu bean.
Żeby mnie jeszcze bardziej zdezorientować, istnieje
annotation-config
atrybut na<context:component-scan>
... -
Nadal mam tag skanowania komponentu:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
ale mam też inny tag (wyglądający jak podobne zadanie), ten:
<annotation-driven />
Jaka jest różnica między tymi dwoma tagami? Inną „dziwną” rzeczą jest to, że poprzedni przykład (który nie używa znacznika opartego na adnotacjach) jest bardzo podobny do projektu utworzonego przez STS przy użyciu projektu szablonu Spring MVC, ale jeśli usunę znacznik oparty na adnotacjach z jego konfiguracji plik projekt nie działa i wyświetla mi następujący błąd: HTTP Status 404 - ...
Spring 3.2 nie potrzebuje już cglib do proxy, ale niższe wersje używają cglib. Cytat z bloga springsource
Aby wygenerować takie proxy, Spring używa biblioteki innej firmy o nazwie cglib. Niestety ten projekt nie jest już aktywny. Wiosną 3.2 jest bardzo prawdopodobne, że Spring będzie domyślnie używać Javassist.
Czy to wystarczy, aby zasugerować, że Wiosna jest zamieszaniem w kwestii konfiguracji?