我正在使用Spring Data REST开发RESTful API。现在进行审计,Spring确实可以选择审计元数据,如created_date
和modified_date
,但它们不提供实体版本控制。
目前,实体版有两个流行的库,分别是Envers和Javers。我已经查看了两者的比较,但没有关于这个问题的任何文章。
那么使用Javers而不是Envers有什么好处和缺点呢?
_AUD
后缀来创建审计表名称。有利的是,您的审计数据接近您的实时数据。 Envers的桌子看起来很熟悉。使用SQL查询它们很容易。
JaVers将自己的Snapshot模型用于审计数据。快照与实时数据分离,JaVers将它们作为具有统一结构的JSON文档保存到单个表(jv_snapshots
)。好处?您可以选择存储审计数据的位置。默认情况下,JaVers使用与应用程序相同的数据库,但您可以指向另一个数据库。例如,用于应用程序的SQL和用于JaVers的MongoDB或用于公司中所有应用程序的集中式JaVers数据库)。阅读此博客文章与完整的JaVers vs Envers比较:qazxsw poi
我不知道Javers,但完整的Envers数据绑定具有以下优点:
这使得Enver可以记录过去在此影子副本中所做的更改。您可以将影子表移动到其他数据库中。