Spring Data,@ Service - 你需要一个接口吗?

时间:2014-08-01 11:52:51

标签: spring spring-mvc spring-data

开发Java EE应用程序时有很多样板代码。

其中一个地方是需要服务接口。是否可以跳过界面部分。

我问,因为 @Service 注释用于类,而不是接口。

例如,

@Repository 在界面上使用。

不使用接口进行服务会有什么影响? @Transaction和其他注释会按预期工作吗?

我理解 Grails ,而其他框架不需要接口,所以虽然你说它对业务逻辑有好处,但是我不明白,但我并不总是这样必要时可以在需要时添加。

1 个答案:

答案 0 :(得分:1)

没有为您的服务使用接口没有真正的危险。不使用只是意味着您的代码与服务实现密切相关。实际上,我没有为我的服务创建界面。我只是用Service来注释我的具体类,因为我很少需要一个具有多个实现的通用服务类。另一方面,存储库通常会看到一个使用Repository注释的接口,因为Spring Data使用AOP在运行时创建存储库的实例。如果要创建接口,可以使用java bean config。创建一个实例化具体服务类的bean方法,返回类型可以是服务类实现的接口。这样你的具体实现只与初始的bean配置相关联,你可以很容易地改变它。