实现业务,为什么要有多层结构?
如果贪图快速实现的话,客户端直接调用JDBC驱动都能对数据库操作,但是伴随着IT技术的发展与更迭,一个系统在数据库层,部署服务器,前端等多个层面都会产生各种变化,业务分层最大的目的就是能解耦业务的同时,不断适应新的变化。
当然,伴随各类技术不断地发展,分层的方式也在不断调整,我以Spring Boot项目,大致介绍下我的心得。
Entity层:实体层。用于实现对数据库表的映射。
Dao层(Data Access Object):数据访问对象层。顾名思义,这一层用于对数据库的增删改查操作,因为有Entity层,Dao层实际就是对Entity进行各类操作。但这里的增删改查相对来说与业务模型是分离的(但也只是相对来说,因为一切Dao层的操作本质上还是为了业务),所以Dao层实际是提供更上层(Service层)基础的增删改查方法。
在Spring Boot项目中,提供了Repository的概念,其实就是Dao层的接口类,Spring boot帮助实现了Dao层的实现类。
Service层:业务逻辑层。这层主要实现业务真正的逻辑。
Controller层:控制层。实现请求和响应的控制。
一般地,我们请求或响应后,Controller层调用Service层,Service层调用Dao层,Dao层调用Entity层,Entity层作为参数在各层中实现传递。