Очевидно, что существует миллион способов создать такое приложение, как в мире Java-фреймворков, так и с помощью таких вещей, как Rails или Django.
Большим преимуществом для меня является то, что и весна, и спящий режим стали стандартами де-факто в мире Java, поэтому они определенно считаются «вещами, которые вы должны знать» (меня спрашивают на каждом собеседовании). Весна больше, чем Hibernate.
Чтобы понять значение весны, потребовалось несколько приложений с поддержкой пружины, прежде чем это стало для меня смыслом. Он применяет независимые модули кода и определенный стиль разработки компонентов, который облегчает тестирование. Я бы посоветовал вам просто пойти с этим и понять смысл его использования.
У меня смешанные чувства по поводу Hibernate, хотя важно использовать какой-то слой db, так что вы тоже можете.
Также см. этот вопрос.