Версия Grails: 3.1.2
У меня есть служба управления версиями (VersionService), которую я хотел бы вызывать всякий раз, когда я создаю новый экземпляр объекта домена (VersionedDomainClass). Я хотел бы, чтобы VersionedDomainClass обрабатывал вызов службы, но когда я пытаюсь это сделать:
class VersionedDomainClass {
transient def versionService
short businessVersion
VersionedDomainClass () {
this.businessVersion = versionService.getNextVersion(this.class)
}
}
конструктор вызывается во время запуска, и в этот момент versionService по-прежнему имеет значение null, поэтому я получаю NPE:
Caused by: java.lang.NullPointerException: Cannot invoke method getNextVersion() on null object
Мне не нужен экземпляр VersionedDomainClass при запуске; похоже, что Spring пытается создать свой собственный класс предметной области, возможно? Есть ли способ предотвратить Spring от этого до тех пор, пока не будут созданы сервисные компоненты?