Я только что закончил читать документы для Spring Data Auditing, но я ничего не понял. Документы показывают, что просто использовать @CreatedBy
, @CreatedDate
и т.д. Достаточно, чтобы пометить поля как проверяемые поля. Тем не менее, это ничего не говорит о требовании геттеров или сеттеров.
Использует ли Spring Data аспекты для ввода геттеров/сеттеров, или я должен делать это вручную? Чтобы еще больше запутать проблему, документы указывают, что я могу расширить интерфейс Auditable
который предоставляет все геттеры и сеттеры, если я не хочу использовать аннотации. Что, на мой взгляд, подразумевает, что getters & seters будут генерироваться автоматически, если я буду использовать аннотации.
Однако, когда я смотрю на скомпилированный файл.class с декомпилятором, я не вижу никаких геттеров и сеттеров, которые были введены.
С аннотациями есть ли какой-либо другой механизм доступа к этим полям аудита из моего кода или я должен намеренно создавать сеттеры/геттеры, если это функциональность, которую я хочу?
Как указано в справочной документации, в настоящее время у вас есть два варианта: аудит на основе аннотаций и аудит на основе интерфейса:
Для аудита на основе интерфейса ваш объект реализует Auditable
и наша инфраструктура будет вызывать сеттеры, открытые через интерфейс (см. Соответствующий фрагмент AuditableBeanWrapperFactory).
Для аудита, основанного на аннотациях, в настоящее время мы поддерживаем только настройку информации аудита непосредственно в поле (подробнее см. ReflectionAuditingBeanWrapper). Там есть билет в нашем трекере, чтобы узнать, как получить доступ к аксессуарам на основе аннотаций, и у нас это будет зафиксировано в первой вехе предстоящего релиза Dijkstra.