2012-12-20 94 views

回答

0

不要以为这是可能的。因为它是Grails框架中隐含的“约定”的一部分。

2

我不这么认为,但是如果原因是你想为这个bean使用一个不同的名字,你可以尝试为scheduleService注册一个别名。 根据评论on this page你应该能够增加这resources.groovy:

springConfig.addAlias('scheduler','scheduleService') 

还没有尝试过自己,不过,并没有发现在该文档中任何事情。

1

Grails服务被注册为带有插件的bean,不管你信不信,所以你应该可以通过创建你自己的插件来实现。

看看grails-plugin-services source。你可以看到,看着服务这一行硬连线在:现在

def watchedResources = ["file:./grails-app/services/**/*Service.groovy", 
         "file:./plugins/*/grails-app/services/**/*Service.groovy"] 

,尽管这是可能的,它可能需要一些工作,它可能是一个坏主意。我真的不知道。我不知道,如果你基本上复制了服务插件,Grails会吓坏了,改变了watchedResources并将它封装在你自己的插件中。

我刚刚浏览了grails文档,关于Artefacts的部分也应该是有用的。

如果你只是想找引用您的服务更简单的方法,这样做:

def painfullyLongNameService 
def getNoPain() {return painfullyLongNameService} 

noPain.yourServiceFunction() 
1

当然你也可以,只是做在resources.groovy中

scheduler(YourCustomSchedulerClassname){ b-> 
    // config 
} 

然后你就可以在其他地方做

class MyService { 
    def scheduler 
}