1

在 Grails 3.3.3 中,当我generate-all为域类运行时,会生成一个服务接口(相对于 Grails 2.x 中的实际服务类)。实际上,直到我尝试向我的服务添加一个方法时,我才注意到它。

该接口被放置在服务所在的服务文件夹中。我实际上确实喜欢这个界面,但我仍然想要服务和默认实现。如果接口已经具有服务的名称,如何在服务文件夹中同时拥有接口和实现?(例如接口被命名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)

}
4

1 回答 1

4

如果接口已经具有服务的名称,如何在服务文件夹中同时拥有接口和实现?

如果您有一个标有 的接口,@Service那么您根本不应该有一个实现源文件。GORM 数据服务在编译时为您生成实现。如果您想自己编写一些代码,则不要编写接口,而是编写一个抽象类并用@Service. 您没有理由将接口标记为@Service然后编写实现该接口的类。

于 2018-03-16T19:22:38.907 回答