Десь я прочитав 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 Project, але якщо я видаляю тег, керований анотацією, з його конфігурації Файл проекту не запускається і дайте мені таку помилку: HTTP Status 404 - ...
Навесні 3.2 більше не потрібен cglib для проксі, але в нижчих версіях використовується cglib. Цитата з блогу Спрінгссор
Для того, щоб генерувати такі проксі, Spring використовує сторонні бібліотеки під назвою cglib. На жаль, цей проект більше не працює. Навесні 3.2 велика ймовірність, що Spring використовує Javassist замість цього за замовчуванням.
Чи достатньо їх, щоб припустити, що Spring - це плутанина щодо конфігурації?