我想在我的应用程序中使用init的数据生成器.它在使用.save()方法创建对象时工作正常,但是当我想使用专用服务时它不起作用,因为空指针而不是注入服务.那是我的代码:
我在conf/spring中定义了DataGenerator bean
beans = { dataGenerator(DataGenerator) }
我Bootstrap.groovy
看起来像:
class BootStrap { def dataGenerator def init = { servletContext -> dataGenerator.generateData() } }
在`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); } } }
问题是,我不能调用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*/ }
你能告诉我怎么解决吗?
在resources.groovy中试试这个
beans = { dataGenerator(DataGenerator) { bean -> bean.autowire = 'byName' } }