2

我正在尝试为我的 Spring Boot 应用程序编写一个自定义的 JPA-EntityListener,它以某种方式感知应用程序上下文。在阅读文档以了解如何实现这一点时,我偶然发现了 spring-data 附带的 AuditingEntityListener 和此侦听器中也使用的 @Configurable Annotation,它启用了不受 spring 管理的对象的配置。所以我尝试在我自己的 Listener 中使用它,但无法识别注释。我已经阅读了有关该主题的文档和许多帖子,但其中一些似乎已经过时了。这就是为什么我在这里问:

在任何情况下我都必须为 LoadTimeWeaving 指定 spring-instrument.jar 吗?spring 文档说还有其他方法,也可以在应用程序上下文中配置它(每个类加载器?)。但是当我在没有在命令行上指定代理的情况下使用@EnableLoadTimeWeaving 启动我的应用程序时,我得到一个错误。

我想知道为什么即使在既没有指定 @EnableLoadTimeWeaving 也没有指定 @EnableSpringConfigured 的应用程序中也能在启动时识别 AuditingEntityListener。是因为分布式 spring-jars 已经用 CTW 编译了吗?

我也尝试过 CompileTimeWeaving 但这与 lombok 冲突。我从 2011 年开始找到了解决方案/解决方法,但这对我不起作用。有没有办法做到这一点?

LTW 和 CTW 的优缺点是什么,以及实现自定义 ApplicationContext-aware JPAEntityListener 的最佳方式是什么?

4

0 回答 0