Grails - Bootstrap - 空指针而不是服务

 Sure张硕 发布于 2023-02-04 14:13

我想在我的应用程序中使用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*/

}

你能告诉我怎么解决吗?

1 个回答
  • 在resources.groovy中试试这个

    beans = {
     dataGenerator(DataGenerator) { bean ->
       bean.autowire = 'byName'
      }
    }
    

    2023-02-04 14:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有