Я занимался обновлением приложения Spring MVC, которое использовало Framework 2.5.6, Security 2.0.4 и Web Services 1.5. Исследуя более новые версии, я понял, что Spring 3.1.0 и 3.0.7 отказываются от наследования для контроллеров в пользу конфигурации, управляемой аннотациями. Я понимаю, что аннотации - это путь вперед при настройке Spring, но в моей ситуации люди, которые будут настраивать значения по умолчанию для внедрения зависимостей, не смогут редактировать файлы src.
Процесс в моей компании такой:
- Я являюсь основным разработчиком приложения Java EE.
- У нас есть другая команда дизайнеров и менее опытных разработчиков, которые настраивают jsp, css, (некоторые)
javascript, xsl, конфигурация XML Spring и Spring
файлы свойств.
- У нас более 100 активных пользовательских реализаций, каждая с
различные значения по умолчанию для внедрения в bean-компоненты, а некоторые - в сообщениях i18n.
- Вместо сотен различных тем в нашем основном продукте, у нас есть очень умный процесс сборки, который позволяет нашей «команде по настройке» поддерживать пользовательские приложения в пределах их собственной системы контроля версий. Сценарий сборки перезапишет любые файлы из пользовательского приложения в основное приложение перед компиляцией и развертыванием в Tomcat. Поэтому файлы src никогда не затрагиваются, отделяя инженерные разработки от эстетики нашей компании.
(Если бы у меня была возможность встроить модуль конфигурации в приложение, это уже было бы сделано. Поэтому сейчас мы застряли в управлении XML-конфигурациями.)
Так как же будет работать конфигурация аннотации в моем случае? Мне кажется, что это неосуществимое решение, учитывая архитектуру нашего продукта. Не является ли основной целью конфигурации, управляемой аннотациями, чтобы разработчик управлял внедрением зависимостей в файлах src вместо файлов XML?
Кто-нибудь знает способ иметь только конфигурацию XML в Spring 3?
EDIT:
Я нашел это: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-java-combining, поэтому я думаю, что могу перенести все контроллеры для использования аннотаций, но оставить другие компоненты такими, какие они есть, поскольку наша команда по настройке не очень часто затрагивает конфигурации контроллеров.