Почему люди используют Spring и почему он так популярен, требует небольшой истории.
Раньше Spring был проще, чем приложения Java EE.Я имею в виду спецификацию EJB2.x.Я чувствую, что было что-то вроде восстания против сложной природы этой спецификации.Разработчики хотели иметь более простую архитектуру, и Spring предоставил ее для них, позволив им писать POJO (простые старые объекты Java) вместо классов, которые должны были реализовывать определенные интерфейсы для получения желаемой функциональности.
Spring также сделал более популярными 2 принципа: Inversion of Control (IoC) и Dependency Injection.В совокупности эти два принципа предоставили различный способ соединения различных компонентов приложения и включения этих компонентов в приложение при его запуске.Это, в сочетании с идеей простого написания POJO, было очень убедительным для многих людей, потому что код был проще, и было проще соединить все ваши компоненты.
Новая спецификация EJB3 сводит на нет кое-что из того, что Spring долженпредложение, но Spring - это гораздо больше, чем контейнер IoC.Он предоставляет отличные шаблоны для доступа JDBC к базе данных, несколько простых способов обработки транзакций, утилиты тестирования, стек MVC и так далее.Это было популярно и остается популярным.Я слышал одну шутку:
"EJB3, ответ на вопрос, который никто не задавал ..."
EJB3 - прекрасный выбор.Весна - прекрасный выбор.Grails также является хорошим выбором (использует Spring, Hibernate под крышками).