我进行了以下替换以将我的应用程序和插件升级到 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 man中。
女巫不清楚的是:
什么是替代品:
grailsDomainClass.getPropertyValue(propertyName)
doWithSpring
我应该将插件中的代码放在哪里?
手册页说:
解决方案是将在上下文可用之前执行的任何逻辑移动到在上下文可用之后执行的其他地方。
其他地方?有doWithContext
关闭吗?可以用来注入bean吗?