Где-то я читал Spring предлагает удобство по настройке. Но пользователи Spring вносят так много изменений в конфигурацию, что теперь я действительно запутался в использовании конфигурации xml или аннотации.
Я хотел бы, чтобы кто-нибудь предложил надежную методологию или практическое правило использования XML и аннотаций.
Примеры в SO показывают, что многие новички, такие как я, запутываются в конфигурации.
-
Я, кажется, не понимаю функциональности позади
<context:annotation-config>
и<context:component-scan>
.Из того, что я прочитал, они, кажется, обрабатывают разные аннотации (@Required, @Autowired и т. Д. Против @Component, @Repository, @Service и т. Д.), Но также и из того, что я читал, они регистрируют одни и те же классы постпроцессора бина.
Чтобы запутать меня еще больше, есть
annotation-config
атрибут на<context:component-scan>
... -
У меня все еще есть тег сканирования компонента:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
но у меня есть еще один тег (который похож на похожую задачу), этот:
<annotation-driven />
В чем разница между этими двумя тегами? Другая «странная» вещь заключается в том, что предыдущий пример (в котором не используется тег, управляемый аннотациями) очень похож на проект, созданный STS с использованием проекта Spring MVC Template, но если я удалю тег, управляемый аннотациями, из его конфигурации файл проекта не запускается и выдает следующую ошибку: HTTP Status 404 - ...
Spring 3.2 больше не нуждается в cglib для прокси, но в более низких версиях используется cglib. Цитата из блога источника
Для генерации таких прокси Spring использует стороннюю библиотеку cglib. К сожалению, этот проект больше не активен. В Spring 3.2 очень вероятно, что Spring по умолчанию будет использовать Javassist.
Достаточно ли этого, чтобы предположить, что Spring - это путаница в конфигурации?