0

我通过 grails 控制台而不是 BootStrap 执行以下代码:

class BootStrap {
def fixtureLoader

    def init = { servletContext ->
        fixtureLoader.load("MockRecords")


    }

}

我收到以下错误:

java.lang.NullPointerException: Cannot invoke method load() on null object
    at Script1.run(Script1.groovy:16)
    at org.grails.plugins.console.ConsoleService.eval(ConsoleService.groovy:57)
    at org.grails.plugins.console.ConsoleService.eval(ConsoleService.groovy:37)
    at org.grails.plugins.console.ConsoleController$_closure2.doCall(ConsoleController.groovy:61)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
undefined

我如何使用控制台加载固定装置

4

2 回答 2

2

更简单,无需使用 getBean:

ctx.fixtureLoader.load("MockRecords")

有用。

于 2013-05-16T11:04:05.443 回答
0

DI(依赖注入)通过模式 CoC 在 grails 中自动完成。

因此,如果您复制/粘贴代码,控制台将不会注入依赖项。所以必须通过调用 foctory ctx.getBean('') 手动注入

def fixtureLoader=ctx.getBean('fixtureLoader');

fixtureLoader.load("MockRecords")
于 2013-05-08T08:54:49.890 回答