@ Dolph, проще говоря, воспринимайте Spring как среду своего приложения в высшей степени.Этот «каркас» предоставляет несколько «компонентных корзин», где вы можете легко подключать различные типы реализаций.Например, для ORM вы можете выбрать использование Hibernate поверх JPA или TopLink, для внешнего интерфейса вы можете выбрать Wicket over Struts или SpringMVC и т. Д.
Вся прелесть этого (помимо всех вкусностей)указано в других сообщениях), это позволяет вам легко заменить любую из этих реализаций в будущем.Таким образом, вы можете по существу вырвать Hibernate в один прекрасный день и заменить его на TopLink, и это никогда не вызовет волнового эффекта для других компонентов.
Еще одна прелесть использования Spring - ваш код становится менее загроможденным и имеет слабые зависимости с другими классами.потому что вы тратите меньше времени на создание новых объектов самостоятельно, Spring справится с этим за вас.Тем не менее, вы быстро поймете, насколько легко вы можете тестировать свой код, потому что тестируемый API становится очень атомарным.Это одна из основных причин, почему людям не рекомендуется писать тестовые сценарии, потому что они быстро понимают, что для того, чтобы тестировать один API, им приходится создавать множество вещей просто для тестирования.Из-за этого весь процесс является хрупким, представьте, что если вы измените этот API, вам нужно будет все реконструировать, прежде чем снова его тестировать.
Книга про Spring Spring хороша, о которой упоминает @JLBarros.Мне очень нравится Spring in Action .Это очень легко читать, когда я только начал работать со Spring.Это, вероятно, один справочник, который я читаю с кожи на кожу.