Как использовать бин Spring в качестве прослушивателя сущностей Morphia? - PullRequest
0 голосов
/ 12 июня 2018

Документация Morphia предоставляет пример того, как @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)?

1 Ответ

0 голосов
/ 12 июня 2018

Функциональность обеспечивается классом ObjectFactory , который можно установить с помощью MapperOptions.setObjectFactory .Пользовательский ObjectFactory должен возвращать соответствующие бины Spring для запрошенных типов классов.

...