【知识】View层、Controller层、Service层、Dao层的区别以及对应的功能

简介: 【知识】View层、Controller层、Service层、Dao层的区别以及对应的功能

1、Dao层


Dao层主要做数据持久层的工作, 负责与数据库进行联络的一些任务都封装在此。 Dao层的设计:首先 是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。


2、Service层


Service层主要负责业务模块的应用逻辑应用设计。 Service层的设计:同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务实, 具体要调用已经定义的dao层接口 ,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。


3、Controller层


Controller层,负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。


4、view层


view层与控制层结合比较紧密,需要二者结合起来协同开发。view层主要负责前台jsp页面的显示。


5、它们之间的关系:


Service层是建立在Dao层之上的,建立了Dao层后才可以建立Service层,而Service层又是在Controller层之下的,因而 Service层应该既调用Dao层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。 每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。


个人理解:


Controller层叫做控制层,负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。即用于接口暴露。


Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务。即sevice层用于逻辑处理,sevice层专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。


Dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求。View层叫做表示层,此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示。 表示层(View\Web) 调用 控制层(Controller),控制层(Controller)调用业务层(Service),业务层(Service)调用数据访问层(Dao)


Dao面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出Dao层,然后根据具体的业务逻辑进一步封装Dao层成一个Service层,对外提供成一个服务。


相关文章
|
10天前
|
Java 数据库 Spring
services层和controller层
Controller层和Services层是现代Web应用程序中的两个关键层次。Controller层负责处理客户端请求和生成响应,而Services层负责实现业务逻辑和数据操作。通过将职责明确分离,可以提高代码的可维护性、可扩展性和测试性。希望本文能帮助您更好地理解这两个层次及其实现方法,并在实际开发中应用这些最佳实践。
14 1
|
3月前
|
设计模式 Java 测试技术
分层设计:Service 层真的需要实现接口吗?
【8月更文挑战第4天】在软件开发领域,分层设计是一种广泛应用且高效的设计模式,它通过将系统划分为不同的逻辑层(如表现层、服务层、数据访问层等),来提高代码的可维护性、可扩展性和可测试性。其中,Service层作为业务逻辑处理的核心,其设计尤为重要。那么,Service层是否真的需要实现接口呢?这个问题值得我们深入探讨。
152 8
|
5月前
|
Java
java工具类调用service层,mapper层
java工具类调用service层,mapper层
116 1
接口模板,文本常用的接口Controller层,常用的controller层模板,Mybatisplus的相关配置
接口模板,文本常用的接口Controller层,常用的controller层模板,Mybatisplus的相关配置
|
6月前
|
SQL 前端开发 Java
java为什么要分为service层,dao层,controller层和Entity层等?
java为什么要分为service层,dao层,controller层和Entity层等?
210 0
|
存储 前端开发 Java
Service 层异常抛到 Controller 层处理还是直接处理?
Service 层异常抛到 Controller 层处理还是直接处理?
422 1
|
SQL Java 程序员
为啥SpringBoot更多普遍采用Controller+Service接口层+ServiceImpl接口实现层
为啥SpringBoot更多普遍采用Controller+Service接口层+ServiceImpl接口实现层
414 0
|
SQL 前端开发 JavaScript
JAVA框架的层级和各层理解 controller,service,dao,mapper,model等层和各包的作用
JAVA框架的层级和各层理解 controller,service,dao,mapper,model等层和各包的作用
921 0
|
Web App开发 SQL XML
实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
113 0
|
JSON 前端开发 JavaScript
如何优雅的写 Controller 层代码?
如何优雅的写 Controller 层代码?
如何优雅的写 Controller 层代码?