-1

我是 Spring 和 MongoDB 的新手。我正在尝试审核 MongoDB 上的 CRUD 操作。我发现许多插件可以审计 MongoDB 级别的更改,但我正在寻找在 Java 级别上工作的拦截器或钩子(例如,用于休眠的 EmptyInterceptor)。

我在 Java 上使用 GMongo 在 MongoDB 上进行操作。在这件事上有什么可以帮助我的?

4

2 回答 2

2

spring-data-mongodbAbstractMongoEventListener正是为这些目的而提供的。请在此处
阅读完整的生命周期事件。

您所要做的就是编写一个类(确保 Spring 扫描它,使用 @Configuration或组件扫描),该类扩展AbstractMongoEventListener和实现 AbstractMongoEventListener 提供的各种抽象方法,并在这些方法中编写您的审计逻辑。

看看LoggingEventListener你的 spring-data-mongodb jar 中的 org.springframework.data.mongodb.core.mapping.event 下。

于 2018-02-01T11:47:41.163 回答
1

我认为您可以尝试CommandListener。您只需要新建一个实现该接口的对象并将其添加到 MongoClientOptions,然后使用 MongoClientOptions 创建一个 MongoClient。像那样:

MongoCommandListener listener = new MongoCommandListener();

MongoClientOptions options =
                        MongoClientOptions.builder().addCommandListener(listener).build();

return new MongoClient(new ServerAddress(host,port), options);
于 2018-03-07T17:31:58.510 回答