Spring 3.2 с Java 7 и Java 8

Я прочитал следующие вопросы, связанные с совместимостью с Spring 3.2 и Java 8, но у меня все еще мало открытых вопросов.

Совместимость с Java 8 Spring

пружинный стержень 3.2.9 + Java 8

Spring 3.2.x с Java 8

Допустим, есть артефакт (например, DAL), который использует Spring 3.2, и этот артефакт должен быть разделен между службой java 7 (служба A) и службой java 8 (служба B). Эти сервисы будут скомпилированы и запущены для соответствующих Java/JVM.

Теперь вопрос - можно ли будет использовать DAL как в Service-A, так и в Service-B?

Согласно фрагменту 1, это должно работать, потому что среда выполнения Java 8 поддерживает библиотеки Spring 3.2, скомпилированные для Java 7, но согласно фрагменту 2 это не должно работать, так как Service-B был соблюден для Java 8 и будет использовать DAL, который имеет был скомпилирован против Java 7.

Фрагмент 1:

Однако в некоторых весенних заметках о выпуске говорится, что Spring Framework 3.2.x будет поддерживать развертывание в средах исполнения JDK 8 для приложений, скомпилированных с JDK 7 (с -target 1.7) или более ранними версиями. Обратите внимание, что он не будет поддерживать формат байт-кода JDK 8 (-target 1.8, как необходимо для лямбда-символов); Для этого обновите версию Spring Framework 4.0.

Фрагмент 2:

Версии Spring Framework, которые старше 4.0M1, не работают с классами, скомпилированными для Java 8.

1 ответ

Нет смысла переходить на Java 8 с Spring 3.x, лучше переходить на JDK 1.8 и Spring 4.x. Миграция JDK 8 не должна быть проблемой, если код не должен быть изменен для функций JDK 8.

Spring 3.2.9 будет лучшим выбором с точки зрения поддержки Java 8-байтового кода.

Другие вопросы по тегам