如何使用Spring bean作为Morphia实体监听器?

问题描述 投票:0回答:1

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领域)?

spring morphia
1个回答
1
投票

该功能由ObjectFactory类提供,可以使用MapperOptions.setObjectFactory设置。自定义ObjectFactory应该为请求的类类型返回适当的Spring bean。

© www.soinside.com 2019 - 2024. All rights reserved.