我有一个名为ABCDCode的域类,并为此ABCDCodeService创建了服务。现在,我想在 Controller 中使用此服务,因此我将其编写如下:
class TestController{
ABCDCode abcdCode
def index(int id){
abcdCode.getData(id) //Here I am getting NullPOinterException
}
}
我怀疑自动布线的名称有问题。
最佳答案
Grails为bean命名查找前两个字符。如果 Controller /服务的第二个字符为大写,则Grails不会将第一个字符转换为小写。
例如,TestService bean名称为testService,而TEstService bean名称为TEstService。
因此,您的代码成为
ABCDCode ABCDCode
def index(int id){
ABCDCode.getData(id)
}
但是,如果要使用
abcdCode
作为bean名称,则可以在resources.groovy
的帮助下进行操作。将以下内容添加到resources.groovy
文件中-beans = {
springConfig.addAlias 'abcdCode', 'ABCDCode'
}