Внутренности Платформы Spring и других контейнеров МОК

Как указано в документации Джексона: https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonProperty.html

public @interface JsonProperty

Аннотация маркера, которую можно использовать для определения нестатического метода в качестве «установщика» или «получателя» для логического свойства (в зависимости от его сигнатуры) или не -статическое поле объекта, которое будет использоваться (сериализовано, десериализовано) в качестве логического свойства.

blockquote>

Я думаю, что вы аннотировали методы, которые не являются установщиками или получателями свойств.

Например:

@JsonProperty("previousNode")
    abstract DefaultMutableTreeNode getPreviousNode();

Этот метод, похоже, не получает свойства, вместо этого он вычисляет узел. Попробуйте удалить все аннотации к методам, чтобы посмотреть, решит ли это проблему.

22
задан Miguel Ping 23 October 2008 в 15:05
поделиться

1 ответ

На самом деле Spring по умолчанию не делает никакого байт-кода, постобрабатывающего ни для XML-, ни для настроенных аннотацией бобов. Вместо этого соответствующие бобы обертываются в динамические прокси (см., например, java.lang.reflect.Proxy в SDK Java). Динамические прокси обертывают фактические объекты, Вы используете и прерываете вызовы метода, позволяя применять советы AOP. Различие - то, что прокси являются чрезвычайно новыми искусственными классами, созданными платформой, тогда как постобработка переплетения/байт-кода изменяет существующие. Последний невозможен, не используя API Инструментария, который Вы упомянули.

Что касается аннотаций, реализации <context:component-scan> тег просканирует путь к классу для всех классов с аннотациями Spring и создаст заполнителей метаданных Spring для них. После этого их рассматривают, как будто они были настроены через XML (или быть более конкретными обоих рассматривают то же).

, Хотя Spring не делает байт-кода, постобрабатывающего себя, можно настроить AspectJ ткацкий агент, который должен работать просто великолепно с Spring, если прокси не удовлетворяют Вас.

30
ответ дан 29 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: