【发布时间】:2015-10-24 10:04:09
【问题描述】:
Grails 服务是用于在控制器之外实现业务逻辑(以及连接到支持服务/数据库等)的抽象。所以在一个典型的控制器中你可能有:
class DashboardController {
StatisticsService statsService
def index() {
// Fetches all the stats that need to be displayed to the
// admin on the dashboard.
AdminDashboardMetrics adm = statsService.getAdminStats()
render(view: "/dashboard", model: [ adm: adm ])
}
}
在这里,Grails 自动将 DashboardController 注入 StatisticsService 的 bean 实例(当然前提是服务是使用 grails create-service ... 正确创建的)。
但是当我需要访问控制器的StatisticsService外部时会发生什么,特别是在src/groovy下?
// src/groovy/com/example/me/myapp/FizzBuzzer.groovy
class FizzBuzzer {
StatisticsService statsService
FizzBuzzer(StatisticsService statsService) {
super()
this.statsService = statsService
}
def doSomething(MyData input) {
MoreData result = statsService.calculate(input)
// use 'result' somehow, etc....
}
}
如何正确地注入 FizzBuzzer 和相同的 StatisticsService 实例广告,传递到 DashboardController 的内容?
【问题讨论】:
标签: grails dependency-injection