Spirng项目分层需要接口层吗?
甲蛙全栈
共 557字,需浏览 2分钟
·
2021-03-09 22:41
很多小伙伴都做过Spring/SpringBoot项目,在项目分层上,有些项目带了接口层,有些项目没有,需要接口层吗?
分享一位同学的疑问:
接口层原因
其实早期Spring实现注入、AOP等,都是JDK自带的动态代理,JDK动态代理要求必须使用接口,所以早期的项目都是有各种接口,很多项目都一直延用,很多老程序员也都养成了习惯。现在Spring集成了cglib,不需要接口了也能实现注入,AOP了。
- controller:接口入口
- service:服务层接口
- serviceImpl:服务层实现
- dao:持久层接口(以前都叫dao,没有mapper)
- daoImpl:持久层实现还有另一个原因,就是程序员会觉得有了接口层,项目多少能用点设计模式,看起来高大上一点。
是否有必要?
个人觉得没必要,作为业务逻辑来说,面向接口编程费力不讨好。我做过的很多项目,都没加接口层,也没啥问题。
接口一般配合上设计模式,写一些通用逻辑很好用,写业务功能没必要。
当然,用接口也没问题
评论