Morphia documentation提供了一个示例,说明@EntityListeners
如何用于将生命周期方法外部化为单独的类:
@EntityListeners(DigitalSigner.class)
public class BankAccount {
@Id
String id;
Date lastUpdated = new Date();
}
class DigitalSigner {
@PrePersist
void prePersist(final Object entity, final DBObject dbObject) {
dbObject.put("signature", sign(dbObject));
}
}
但是,文档没有说明如何实例化类。我猜是通过调用no-args构造函数。
我需要从实体监听器调用Spring服务,或者让Spring服务作为监听器。如何实现这一目标(最好不要将服务粘贴到static
字段中)?
答案 0 :(得分:1)
该功能由ObjectFactory类提供,可以使用MapperOptions.setObjectFactory进行设置。自定义ObjectFactory应该为请求的类类型返回适当的Spring bean。