Я сделал следующие замены, чтобы обновить свои приложения и плагины до версии grails 3.3. (изменение имени переменной связано с улучшением ясности замен.)
Грааль 3.2:
Class<?> clazz = grailsDomainClass.clazz
...
def grailsDomainClass = new DefaultGrailsDomainClass(clazz)
...
GrailsDomainClassProperty[] properties = grailsDomainClass.properties
...
def propertyName = grailsDomainClass.propertyName
...
def referenceType = grailsDomainClassProperty.referencedPropertyType
...
Грааль 3.3:
Class<?> clazz = persistentEntity.javaClass
...
def persistentEntity = grailsApplication.mappingContext.getPersistentEntity(DomainClass.class.name)
...
PersistentProperty[] properties = persistentEntity.persistentProperties
...
def propertyName = persistentEntity.decapitalizedName
...
def referenceType = persistentProperty.type
Другие изменения находятся в руководстве по Grails 3.3.
Ведьма не ясно это:
Чем заменить:
grailsDomainClass.getPropertyValue(propertyName)
Куда мне поместить код, который находится в
doWithSpring
моих плагинов?
На странице руководства говорится:
Решение состоит в том, чтобы переместить любую логику, которая выполняется до того, как контекст станет доступным, в другое место, которое будет выполняться после того, как контекст станет доступным.
Где-то еще были? Есть ли закрытие doWithContext
? Его можно использовать для инъекций бобов?