Как указано в документации Джексона: https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonProperty.html
public @interface JsonProperty
Аннотация маркера, которую можно использовать для определения нестатического метода в качестве «установщика» или «получателя» для логического свойства (в зависимости от его сигнатуры) или не -статическое поле объекта, которое будет использоваться (сериализовано, десериализовано) в качестве логического свойства.
blockquote>
Я думаю, что вы аннотировали методы, которые не являются установщиками или получателями свойств.
Например:
@JsonProperty("previousNode")
abstract DefaultMutableTreeNode getPreviousNode();
Этот метод, похоже, не получает свойства, вместо этого он вычисляет узел. Попробуйте удалить все аннотации к методам, чтобы посмотреть, решит ли это проблему.
На самом деле Spring по умолчанию не делает никакого байт-кода, постобрабатывающего ни для XML-, ни для настроенных аннотацией бобов. Вместо этого соответствующие бобы обертываются в динамические прокси (см., например, java.lang.reflect.Proxy
в SDK Java). Динамические прокси обертывают фактические объекты, Вы используете и прерываете вызовы метода, позволяя применять советы AOP. Различие - то, что прокси являются чрезвычайно новыми искусственными классами, созданными платформой, тогда как постобработка переплетения/байт-кода изменяет существующие. Последний невозможен, не используя API Инструментария, который Вы упомянули.
Что касается аннотаций, реализации <context:component-scan>
тег просканирует путь к классу для всех классов с аннотациями Spring и создаст заполнителей метаданных Spring для них. После этого их рассматривают, как будто они были настроены через XML (или быть более конкретными обоих рассматривают то же).
, Хотя Spring не делает байт-кода, постобрабатывающего себя, можно настроить AspectJ ткацкий агент, который должен работать просто великолепно с Spring, если прокси не удовлетворяют Вас.