我有一个具有List属性的bean。 正如documentation中提到的那样,您可以使用bean DSL轻松地将List属性注入bean:
def example = exampleBean(MyExampleBean) {
someProperty = [1, 2, 3]
}
它可以在resources.groovy
中使用,但是如果您在插件的doWithSpring
闭包中使用-相同的bean定义将不起作用。
是Grails的错误吗(我正在使用Grails 3.3.3)?是否有任何变通办法可以使其在插件中正常工作?
答案 0 :(得分:0)
查看位于https://github.com/jeffbrown/taraskahut的项目。
Closure doWithSpring() { {->
exampleBean(MyExampleBean) {
someProperty = [1, 2, 3, 5, 8]
}
}
}
应用程序中https://github.com/jeffbrown/taraskahut/blob/df3df67cb8a6dd24317f45aa51b6fff449b60ed1/app/grails-app/init/app/BootStrap.groovy处的BootStrap.groovy
包含以下内容:
package app
import helper.MyExampleBean
class BootStrap {
MyExampleBean exampleBean
def init = { servletContext ->
log.debug "someProperty is ${exampleBean.someProperty}"
}
def destroy = {
}
}
运行该应用程序表明,属性初始化可以按预期进行:
$ ./gradlew app:bootRun
...
:app:processResources
:app:classes
:app:findMainClass
:app:bootRun
2018-11-06 13:19:52.983 DEBUG --- [ main] app.BootStrap
: someProperty is [1, 2, 3, 5, 8]
Grails application running at http://localhost:8080 in environment: development