Grails 插件:将列表注入 doWithSpring 中的 bean
Grails plugin: inject list into bean inside doWithSpring
我有一个带有列表 属性 的 bean。
正如 documentation 中提到的,您可以使用 beans DSL 轻松地将列表 属性 注入 bean:
def example = exampleBean(MyExampleBean) {
someProperty = [1, 2, 3]
}
它在 resources.groovy
中有效,但如果您在插件的 doWithSpring
闭包中执行此操作 - 相同的 bean 定义将不起作用。
这是 Grails 错误吗(我使用的是 Grails 3.3.3)?有什么变通办法可以让它在插件中工作吗?
在 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
我有一个带有列表 属性 的 bean。 正如 documentation 中提到的,您可以使用 beans DSL 轻松地将列表 属性 注入 bean:
def example = exampleBean(MyExampleBean) {
someProperty = [1, 2, 3]
}
它在 resources.groovy
中有效,但如果您在插件的 doWithSpring
闭包中执行此操作 - 相同的 bean 定义将不起作用。
这是 Grails 错误吗(我使用的是 Grails 3.3.3)?有什么变通办法可以让它在插件中工作吗?
在 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