【发布时间】:2014-07-09 07:23:48
【问题描述】:
我目前在新的Groovy Bean Definition DSL 中看到的唯一缺点是闭包中的bean 必须以依赖顺序声明。例如,虽然这有效:
beans {
repository(RepositoryImpl)
service(ServiceImpl) {
repository = repository
}
}
这行不通:
beans {
service(ServiceImpl) {
repository = repository
}
repository(RepositoryImpl)
}
那是因为闭包中的代码是逐行执行的。
这是我们在 Spring 中不习惯的——XML 定义被解析为一个 DOM,在 Java 配置中 bean 定义是方法,因此声明顺序并不重要。
我做了一些努力来打破这个闭包以模仿 Java 配置(每个 bean 的闭包/方法),但是我提供的代码非常丑陋和冗长。
有人知道如何将此闭包重构为多个与顺序无关的代码单元吗?
附注我知道这种定义风格来自 Grails,所以也许 Grails 社区已经有了答案?
【问题讨论】:
-
不能
ref("repository");吗? -
不确定我是否理解您的评论...
-
关于使用 ref("repository") 的评论是完成您想要做的事情的建议。在示例中使用 ref 而不是变量名与使用 Spring ref 属性作为 bean 引用相同。试一试。
-
耶!我想这是一个标准的 Grails 配置技巧?添加
grails标签是一个不错的决定:) 你想添加答案吗?如果没有,我会添加一个。
标签: spring grails groovy spring-groovy-config