我是 Spring 和 MongoDB 的新手。我正在尝试审核 MongoDB 上的 CRUD 操作。我发现许多插件可以审计 MongoDB 级别的更改,但我正在寻找在 Java 级别上工作的拦截器或钩子(例如,用于休眠的 EmptyInterceptor)。
我在 Java 上使用 GMongo 在 MongoDB 上进行操作。在这件事上有什么可以帮助我的?
我是 Spring 和 MongoDB 的新手。我正在尝试审核 MongoDB 上的 CRUD 操作。我发现许多插件可以审计 MongoDB 级别的更改,但我正在寻找在 Java 级别上工作的拦截器或钩子(例如,用于休眠的 EmptyInterceptor)。
我在 Java 上使用 GMongo 在 MongoDB 上进行操作。在这件事上有什么可以帮助我的?
spring-data-mongodbAbstractMongoEventListener
正是为这些目的而提供的。请在此处
阅读完整的生命周期事件。
您所要做的就是编写一个类(确保 Spring 扫描它,使用 @Configuration
或组件扫描),该类扩展AbstractMongoEventListener
和实现 AbstractMongoEventListener 提供的各种抽象方法,并在这些方法中编写您的审计逻辑。
看看LoggingEventListener
你的 spring-data-mongodb jar 中的 org.springframework.data.mongodb.core.mapping.event 下。
我认为您可以尝试CommandListener。您只需要新建一个实现该接口的对象并将其添加到 MongoClientOptions,然后使用 MongoClientOptions 创建一个 MongoClient。像那样:
MongoCommandListener listener = new MongoCommandListener();
MongoClientOptions options =
MongoClientOptions.builder().addCommandListener(listener).build();
return new MongoClient(new ServerAddress(host,port), options);