Java中Controller、Service、Dao/Mapper层的区别与用法

 更新时间:2023年05月29日 10:22:10   作者:岚天、  
在Java开发中,通常会采用三层架构(或称MVC架构)来划分程序的职责和功能,分别是Controller层、Service层、Dao/Mapper层,本文将详细给大家介绍了三层的区别和用法,需要的朋友可以参考下

1、Service层:业务层–>控制业务

业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。

好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

2、Controller层:控制层–>调用业务层方法来控制业务逻辑

controller层主要调用Service层里面的接口来控制具体的业务流程,控制层的配置也要在配置文件中进行。

Controller和Service的区别是:Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计

3、Dao/Mapper层:持久层,主要与数据库交互

Dao层首先会创建Dao接口,接着就可以在配置文件中定义该接口的实现类;然后就可以在模块中调用Dao的接口进行数据业务的处理,而不用关注此接口的具体实现类是哪一个类,Dao层的数据源和数据库连接的参数都是在配置文件中进行配置的。

以下是更专业的详解

Controller层

Controller层是Java Web应用程序里面的控制层,主要负责接收客户端发送的请求、调度Service层的各个方法,并将处理的结果返回给客户端。同时,Controller层也可以对请求参数进行校验,防止错误数据的处理和提交。

Controller层主要使用 Spring MVC 相关的注解来映射请求和处理请求结果。例如,@RequestMapping注解用于配置基于请求URL的映射,@Controller注解用于标识该类为控制器类,@ResponseBody注解用于将返回结果序列化成JSON等格式返回给客户端。

Service层

Service层是Java Web应用程序里面的业务逻辑层,主要负责处理业务逻辑、实现数据校验、事务控制、权限控制等方面。Service层通过调用Dao/Mapper层的接口来操作数据库,以完成具体的业务目标。

为了能够实现业务逻辑的独立性和可重用性,Service层通常采用接口+实现类的方式进行开发。Service层主要使用@Autowired注解来注入Dao/Mapper层的实例,并使用@Transactional注解来定义事务。

Dao/Mapper层

Dao/Mapper层是Java Web应用程序里面的数据访问层,主要负责与数据库进行交互,进行数据读取、写入、修改、删除等操作。Dao/Mapper层通常使用Spring Data JPA、MyBatis等开源框架进行ORM操作。

在Dao/Mapper层中通常有一个Java接口和一个对应的XML文件(或注解方式进行映射),用于定义SQL语句,以完成数据的增、删、改、查操作。Dao/Mapper层中的方法会由Service层来调用,通过调用SQL语句来完成与数据库的交互。

总之,Controller、Service、Dao/Mapper层是Java Web应用程序中常用的三层架构,分别负责接收请求、处理业务逻辑和与数据库交互。合理地划分和组织这三层的代码,可以简化程序的开发和维护,提高代码的可重用性和可维护性。

到此这篇关于Java中Controller、Service、Dao/Mapper层的区别与用法的文章就介绍到这了,更多相关Java 层的区别与用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解java封装返回结果与RestControllerAdvice注解

    详解java封装返回结果与RestControllerAdvice注解

    这篇文章主要为大家介绍了java封装返回结果与RestControllerAdvice注解实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Java线程池实现原理总结

    Java线程池实现原理总结

    这篇文章主要给大家分享的是Java线程池实现原理总结,线程池参数、线程池执行流程等内容上总结,具有一定参考戒指,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-01-01
  • Java实现拓扑排序算法的示例代码

    Java实现拓扑排序算法的示例代码

    在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。本文将为大家讲讲拓扑排序算法的原理及实现,需要的可以参考一下
    2022-07-07
  • Mybatis返回单个实体或者返回List的实现

    Mybatis返回单个实体或者返回List的实现

    这篇文章主要介绍了Mybatis返回单个实体或者返回List的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • java+SpringBoot设计实现评教系统

    java+SpringBoot设计实现评教系统

    这篇文章主要介绍了用过Java SpringBoot实现一个简单的评价系统,可以做到学生管理、教师管理、评教管理、指标管理、课程管理等。感兴趣的可以了解一下
    2021-12-12
  • Quartz作业调度基本使用详解

    Quartz作业调度基本使用详解

    这篇文章主要为大家介绍了Quartz作业调度基本使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 聊一聊SpringBoot服务监控机制

    聊一聊SpringBoot服务监控机制

    这篇文章主要介绍了聊一聊SpringBoot服务监控机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java设计模式编程中的责任链模式使用示例

    Java设计模式编程中的责任链模式使用示例

    这篇文章主要介绍了Java设计模式编程中的责任链模式使用示例,责任链模式可以避免很多请求的发送者和接收者之间的耦合关系,需要的朋友可以参考下
    2016-05-05
  • spring boot搭建文件服务器解决同时上传多个图片和下载的问题

    spring boot搭建文件服务器解决同时上传多个图片和下载的问题

    这篇文章主要介绍了spring boot搭建文件服务器解决同时上传多个图片和下载的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • JAVA 继承基本类、抽象类、接口介绍

    JAVA 继承基本类、抽象类、接口介绍

    Java是一个面向对象的语言,java面向对象一般有三大特征:封装、继承、多态
    2013-01-01

最新评论