Что случилось с классом JacksonJaxbJsonProvider в версиях 2.16.x и выше?

Вопрос или проблема

Во время миграции, связанной с Jakarta.x, я заметил, что класс JacksonJaxbJsonProvider был удален (по крайней мере, с версии 2.16.x и далее).

Это многоуровневый репозиторий – https://github.com/FasterXML/jackson-jakarta-rs-providers

И этот класс теперь отсутствует.

Кто-нибудь знает, какова лучшая альтернатива для этих классов? И извините еще раз, если я пропустил какую-либо очевидную заметку в разделах релиза.

Я снова пересмотрю заметки перед тем, как проверять эту тему на SO.

Этот класс, насколько я знаю, никогда не существовал в jackson-jakarta-rs-providers (или на самом деле jackson-jakarta-rs-json-provider) под этим названием, только в jackson-jaxrs-providers (jackson-jaxrs-json-provider).

Его заменой, когда была создана версия Jakarta EE, стало название com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider (для сравнения, см. “старую” документацию javax JacksonJaxbJsonProvider)

В дополнение к ответу, предоставленному @MarkRotteveel выше.

  1. Посмотрите на прилагаемое сравнение между двумя файлами – они функционально идентичны.

  2. Если вы используете базовые вещи, JacksonJsonProvider должен быть достаточным для вас.

введите описание изображения здесь

Ответ или решение

Класс JacksonJaxbJsonProvider, который вы упомянули, действительно был удалён в версиях Jackson 2.16.x и выше. Это изменение связано с переходом на проект jackson-jakarta-rs-providers, который соответствует спецификациям Jakarta EE.

Ранее класс JacksonJaxbJsonProvider был частью модуля jackson-jaxrs-providers. При переходе на Jakarta EE был разработан новый класс, который является его заменой. Новая версия класса теперь называется com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider. Вы можете ознакомиться с его документацией здесь.

Основные моменты, которые следует учитывать:

  1. Функциональная идентичность: Функционально новый класс JacksonXmlBindJsonProvider и старый класс JacksonJaxbJsonProvider идентичны, что означает, что вы можете просто заменить один класс на другой без необходимости изменения вашего кода.
  2. Простые сценарии: Если вы используете более простые сценарии, вам также может подойти класс JacksonJsonProvider, который может быть более легковесным вариантом для обработки JSON без необходимости привязки к JAXB.

Если у вас возникнут дополнительные вопросы или вы будете нуждаться в более конкретной помощи по миграции, не стесняйтесь обращаться к документации или к сообществу, которое активно обсуждает эти изменения.

Оцените материал
Добавить комментарий

Капча загружается...