在Grails 3.3.3中,当我为域类运行generate-all
时,会生成一个服务接口(与Grails 2.x中的实际服务类相比)。在我尝试为我的服务添加方法之前,我实际上没有注意到它。
接口放置在服务所在的services文件夹中。我实际上喜欢这个界面,但我仍然想要服务和默认实现。如果接口已具有服务名称,如何在services文件夹中同时具有接口和实现? (例如,接口名为ClientService.groovy
,因此实现名称相同)
以下是生成
的界面示例package project
import grails.gorm.services.Service
@Service(Client)
interface ClientService {
Client get(Serializable id)
List<Client> list(Map args)
Long count()
void delete(Serializable id)
Client save(Client client)
}
答案 0 :(得分:4)
我如何同时拥有一个界面和实现 如果接口已具有服务名称,则为services文件夹吗?
如果您的界面标有HttpClient
,那么您根本就没有实施源文件。 GORM Data Services在编译时为您生成实现。如果你想自己编写一些代码,那么代替接口编写一个抽象类,并用@Service
注释它。没有理由让你有一个标有@Service
的接口,然后编写一个实现该接口的类。