我想创建一个Grails服务而不使用* Service postfix约定来获取类名(例如,将我的类Scheduler而不是ScheduleService命名)。无论如何都会覆盖Grails的默认行为并将grails-app/service
目录中的任何对象视为Grails服务?是否有更改默认的Grails服务命名约定?
0
A
回答
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
}
相关问题
- 1. 更改默认的命名约定PhpStorm 2016.3
- 2. Corda Demobench更改默认服务名称
- 3. Grails的命名约定
- 4. 更改外键约束命名约定
- 5. 更改默认的GPO命名空间?
- 6. JAX-WS和Enunciate - 如何更改Enunciate的默认XSD命名约定
- 7. PHP命名空间是否有完善的命名约定?
- 8. JAXB更改默认命名转换器
- 9. 默认命名螺纹的公约
- 10. 服务方法的命名约定
- 11. 更改Rails的默认服务器
- 12. 什么是EF默认ID命名约定代码优先?
- 13. Grails默认包名
- 14. Grails动作的命名约定
- 15. 更改Grails插件的默认位置
- 16. SOAP Web服务方法命名约定
- 17. SQL服务器字段命名约定
- 18. 更改咕噜服务默认路径
- 19. 更改Nagios监视一个知名服务的默认端口
- 20. 更改命名约定图片管道
- 21. 具有连字符名称的Grails插件的命名约定
- 22. 如何使用命名默认约束和命名外键约束来更改表添加列?
- 23. Grails的默认为空的约束
- 24. Grails包装和命名约定
- 25. grails taglib命名空间约定
- 26. 是否可以更改默认目标?
- 27. 使用DDD命名域服务和应用服务的约定
- 28. 函数的一个未命名参数是否有默认值?
- 29. 是否有命名私有函数的Clojure约定?
- 30. 是否有任何有关REST API的命名约定准则?