2

在我的服务中尝试以下操作时遇到问题:

class SendingMailService {

def dataSource // the Spring-Bean "dataSource" is auto-injected

def sendXLSMail() {

def db = new Sql(dataSource) 

//additional code such as query, execution follows

}
}

当我执行此代码时,我收到错误:“必须指定非空连接”。根据我的阅读,我相信上面的代码应该可以工作(这不是单元测试)......所以很明显我错过了关于 Grails 服务的一些东西?

感谢您在这里的任何帮助,

4

1 回答 1

0

好的几个月后,我有时间研究这个。

我尝试了一些方法来让数据源自动注入到服务中,但我一直得到一个空连接。最终,我开始从控制器传递数据源,这不是很优雅,但至少它可以工作。我希望这对其他人有所帮助,因为我已经看到了一些类似的问题。仍然想知道为什么自动注入不起作用,但我想我必须深入研究 Grails 才能理解这一点。

class MyController {

def dataSource

def someControllerMethod() {

MyService myService = new MyService()
myService.serviceMethodQuery(dataSource) 

}
}

////////////////////

class MyService {

def serviceMethodQuery(Object dataSource){

//use your datasource as you normally would
}

}
于 2014-01-14T15:58:38.700 回答