Если бы Spring был библиотекой, вы бы увидели успех. Это не так, это рамки.
Это означает, что Spring Framework должен понимать плагины, которые обеспечивают логику, которая решает остальную часть "проблемы", решаемой вашей программой. Для правильного внедрения и подключения Spring использует библиотеки, которые проверяют и конфигурируют плагины, написанные для управления Spring.
Эти библиотеки выполняют отражение и обработку байтового кода в плагинах. Это означает, что среда Spring должна понимать байт-код Java 8. Ваша версия Spring этого не делает. Чтобы получить Spring, который вам нужен, вы должны обновить зависимость Apache Maven для Spring; но это вызовет необходимость обновления плагинов для корректной работы с новой версией Spring.
Короче говоря, вам придется перенести гораздо больше зависимостей на более новые версии для поддержки Java 8.
Каркасы могут быть отличными вещами, поскольку они могут сэкономить много времени; но есть риск архитектуры программного обеспечения. Если инфраструктура нуждается в обновлении, все компоненты плагина могут нуждаться в модификации для перехода на новую версию. Весна не исключение.
Вот почему некоторые люди предпочитают использовать библиотеки; но библиотеки не являются панацеей, потому что вам часто нужно решить, как их интегрировать (что означает, что вы пишете свою собственную платформу, но управлять миграцией вперед легче, чем чьей-либо другой структурой).