基本上,您需要的是
>创建一个AbstractMongoEventListener来侦听AfterConvertEvent和BeforeSaveEvent事件
>实现org.springframework.util.ReflectionUtils.FieldCallback回调以对这些事件进行操作
>在Spring Data mongodb配置类中将侦听器注册为Bean
听众:
public class EncryptionMongoEventListener extends AbstractMongoEventListener {
@Override
public void onBeforeSave(BeforeSaveEvent event) {
Object source = event.getSource();
DBObject dbObject = event.getDBObject();
ReflectionUtils.doWithFields(source.getClass(),
new EncryptCallback(source, dbObject),
ReflectionUtils.COPYABLE_FIELDS);
}
@Override
public void onAfterConvert(AfterConvertEvent event) {
Object source = event.getSource();
ReflectionUtils.doWithFields(source.getClass(),
new DecryptCallback(source),
ReflectionUtils.COPYABLE_FIEL