监听MongoDB的生命周期,只需重写org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener
的子类,并在Spring
的ApplicationContext
中声明这些bean
,这样在分派事件时会调用它们。例如:spring
public class BeforeConvertListener extends AbstractMongoEventListener<Person> { @Override public void onBeforeConvert(BeforeConvertEvent<Person> event) { ... does some auditing manipulation, set timestamps, whatever ... } }
AbstractMappingEventListener
中提供了如下回调方法:mongodb
方法 | 描述 |
---|---|
onBeforeConvert |
调用MongoTemplate 的insert 、insertList 和save 操做,在经过MongoConverter 将对象转换为文档以前的处理。 |
onBeforeSave |
调用MongoTemplate 的insert 、insertList 和save 操做,在数据库中插入或保存文档以前的处理。 |
onAfterSave |
调用MongoTemplate 的insert 、insertList 和save 操做,在数据库中插入或保存文档以后的处理。 |
onAfterLoad |
调用MongoTemplate 中的find 、findAndRemove 、findOne 和getCollection 方法,从数据库检索文档后的处理。 |
onAfterConvert |
调用MongoTemplate 中的find 、findAndRemove 、findOne 和getCollection 方法,从数据库检索文档被转换为POJO后的处理。 |