我是Spring和MongoDB的新手。我正在尝试审核MongoDB上的CRUD操作。 我发现很多插件可以审核MongoDB级别的更改,但我正在寻找类似于拦截器或钩子(例如,用于hibernate的EmptyInterceptor)的东西,它可以在Java级别上运行。
我在Java上使用GMongo来操作MongoDB。什么能帮助我解决这个问题?
答案 0 :(得分:1)
spring-data-mongodb正是为了这些目的而提供Foo
。
请阅读完整的生命周期事件here。
您所要做的就是编写一个类(确保Spring使用AbstractMongoEventListener
或componentscan)扫描它,扩展@Configuration
并实现AbstractMongoEventListener提供的各种抽象方法,并将您的审计逻辑写入内部这些方法。
在spring-data-mongodb jar中查看org.springframework.data.mongodb.core.mapping.event下的AbstractMongoEventListener
。
答案 1 :(得分:0)
我想你可以试试CommandListener。 您只需要一个实现该接口的新对象并将其添加到MongoClientOptions,然后使用MongoClientOptions创建一个MongoClient。 那样:
MongoCommandListener listener = new MongoCommandListener();
MongoClientOptions options =
MongoClientOptions.builder().addCommandListener(listener).build();
return new MongoClient(new ServerAddress(host,port), options);