为什么服务、 Controller 或存储库必须有一个接口(interface),因为只有 1 个类实现它们?
第二次
为什么是spring命名约定。
接口(interface):ABCService 具体类:ABCServiceImpl ..
使用以下命名转换(eclipse ctr-shift-r)是否更加用户友好
接口(interface):IABCServices 具体类:ABCService
最佳答案
1) 默认情况下,像 @Transactional
是使用 JDK Proxies 实现的。为了让 Spring 在运行时创建 JDK 代理,必须有一个要实现的接口(interface)。你不能代理一个类。如果您切换到使用 CGLib proxies ,那么接口(interface)就不是必需的。
2)这只是惯例,除了第一个开始这样做的人之外,谁能真正告诉我们原因? :) IABCServices
命名主要用于 Microsoft 平台。为什么我们要使用驼峰式大小写属性并将类大写。
人们可以提出一个哲学论点:如果接口(interface)是事物的真实定义,那么它应该有一个“干净”的名称。为什么该项目的“根定义”上有标记?特定于平台/特定于实现的项目应该是标记有其名称的项目。
关于Spring:必须Service或Controller或Repository有一个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148345/