我想在我的应用程序中使用init的数据生成器.它在使用.save()方法创建对象时工作正常,但是当我想使用专用服务时它不起作用,因为空指针而不是注入服务.那是我的代码:
我在conf/spring中定义了DataGenerator bean
beans = {
dataGenerator(DataGenerator)
}
Run Code Online (Sandbox Code Playgroud)
我Bootstrap.groovy看起来像:
class BootStrap {
def dataGenerator
def init = { servletContext ->
dataGenerator.generateData()
}
}
Run Code Online (Sandbox Code Playgroud)
在`DataGenerator'中我有:
class DataGenerator{
BookService bookService
def generateData() {
log.info("Generating books")
createBooks()
}
def createBooks(){
(1..40).each() {
CreateBookCommand command = new CreateBookCommand()
/* some command populate code*/
bookService.create(command);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我不能调用create()方法,因为bookService总是如此null
BookService是简单的grails服务,有一些依赖,当然放在 grails-app/services
class BookService {
UserService userService
SpringSecurityService springSecurityService
def create(CreateBookCommand command){
Book book = new Book()
command.bindTo(book)
book.save(flush:true, failOnError:true)
}
/*some other methods*/
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我怎么解决吗?
在resources.groovy中试试这个
beans = {
dataGenerator(DataGenerator) { bean ->
bean.autowire = 'byName'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1701 次 |
| 最近记录: |