Mul*_*one 15 service grails groovy interface
我想知道是否有可能在Grails上创建一个服务接口,我找不到合适的方法.这种解释并不令人满意,因为它似乎混合了Java和Groovy:
http://www.grails.org/doc/latest/guide/8.%20The%20Service%20Layer.html
在我看来,这是一个糟糕的框架设计缺陷,因为接口机制是Java(和大多数OO语言)的最佳功能之一.
有什么想澄清这个问题吗?
谢谢!Mulone
小智 18
你可以有一个界面,但实际上你不需要一个界面.如果我理解正确,您希望有两个服务实现,并能够选择使用哪个.
简单地实现一个名为例如两个服务MyService1和MyService2,然后grails-app/conf/spring/resource.groovy你可以指定:
beans = {
...
// syntax is beanId(implementingClassName) { properties }
myService(MyService1)
...
}
Run Code Online (Sandbox Code Playgroud)
甚至:
beans = {
...
if (someConfigurationOption) {
myService(MyService1)
} else {
myService(MyService2)
}
}
Run Code Online (Sandbox Code Playgroud)
这就是你如何告诉Spring实际注入哪些服务myService.现在你可以使用myService如下:
public MyController {
def myService
...
}
Run Code Online (Sandbox Code Playgroud)
和Spring将自动连接正确的实现.这允许您根据某些配置配置要使用的服务实现.
com.mycompany.mypackage.MyInterface.groovy存储的类中定义服务接口under src/groovy定义存储在下的服务实现 grails-app/services
class MyService implements MyInterface {
// service implementation goes here
}
Run Code Online (Sandbox Code Playgroud)