Spring MVC аннотации против конфигурации xml - PullRequest
1 голос
/ 06 марта 2012

Я занимался обновлением приложения 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, поэтому я думаю, что могу перенести все контроллеры для использования аннотаций, но оставить другие компоненты такими, какие они есть, поскольку наша команда по настройке не очень часто затрагивает конфигурации контроллеров.

1 Ответ

2 голосов
/ 06 марта 2012

Я не большой эксперт в этом, но я использую Spring 3.1 в текущем проекте, и все еще есть много конфигураций xml: приложение в целом собрано из набора компонентов, определенных в foo-servlet.xml(так что у меня есть daos, которые подключены к бинам контроллера и т. д.).мои контроллеры, конечно, имеют аннотации к методам, связанным с входящими HTTP-запросами, но они предназначены для таких вещей, как параметры URL - детали, тесно связанные с кодом.и я использую аннотации и инжекцию по типу в тестах, потому что это быстро и просто.

, поэтому я немного запутался, читая ваш вопрос.Возможно, я неправильно понимаю, или у меня другой случай, но это звучит так, будто вы переоцениваете, сколько вам нужно, чтобы использовать аннотации.я использую их там, где это кажется разумным, но придерживаюсь xml там, где это кажется лучшим ...

...