springBoot controller,service,dao,mapper,model层的作用说明

 更新时间:2021年11月16日 10:19:43   投稿:jingxian  
这篇文章主要介绍了springBoot controller,service,dao,mapper,model层的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

零、业务逻辑

Controller-->service接口-->serviceImpl-->dao接口-->daoImpl-->mapper-->db

一、Dao(Data Access Object):数据存储对象

DAO = Data Access Object = 数据存取对象. 不管是什么框架,我们很多时候都会与数据库进行交互。如果遇到一个场景我们都要去写SQL语句,那么我们的代码就会很冗余。所以,我们就想到了把数据库封装一下,让我们的数据库的交道看起来像和一个对象打交道,这个对象通常就是DAO。当我们操作这个对象的时候,这个对象会自动产生SQL语句来和数据库进行交互,我们就只需要使用DAO就行了。

通常我们在DAO层里面写接口,里面有与数据打交道的方法。SQL语句通常写在mapper文件里面的。

优点:结构清晰,Dao层的数据源配置以及相关的有关数据库连接的参数都在Spring配置文件中进行配置。

二、Service:服务

服务是一个相对独立的功能模块,主要负责业务逻辑应用设计首先也要设计接口,然后再设计其实现该接口的类。这样我们就可以在应用中调用service接口进行业务处理。service层业务实现,具体调用到已经定义的DAO的接口,封装service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性 。

如果把Dao层当作积木,则Service层则是对积木的搭建。

三、Controller:控制器

主要负责具体业务模块流程的控制,此层要调用到Service层的接口去控制业务流程,控制的配置同样在Spring配置文件中配置。针对不同的业务流程有不同的控制器。在设计的过程可以设计出重复利用的子单元流程模块。

四、model:模型

模型就是指视图的数据Model,模型,通常来讲,我们会把模型和另一个东西放在一起来说:View,视图。

模型通常认为是视图的内核,何谓之视图?我们正在与之交互的网站的界面就是视图,而模型是指他的内核数据

将Model和View的概念拆分开来,有助于我们关注不同的方面,也可以更有效的分工。有些工程师更关注于内核也就是模型,通常来说,他们被称之为后端工程师。有些工程师更关注于用户界面的交互和展示,通常来说,他们被称之为前端工程师。

五、View层

与Controller层关系紧密,View层主要负责前台jsp页面的表示。

六、它们之间的关系

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

DAO层、Service层和Controller层的区别

1、dao层:数据访问层

dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一 一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

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

2、service层:服务层

粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

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

3、controller层

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

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

关系

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java 实现多个list 合并成一个去掉重复的案例

    java 实现多个list 合并成一个去掉重复的案例

    这篇文章主要介绍了java 实现多个list 合并成一个去掉重复的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • JAVA中StringBuffer与String的区别解析

    JAVA中StringBuffer与String的区别解析

    这篇文章主要介绍了JAVA中StringBuffer与String的区别解析,需要的朋友可以参考下
    2014-02-02
  • Java中的六种经典比较排序算法

    Java中的六种经典比较排序算法

    排序算法是程序开发和计算机科学中常见的算法之一,排序算法是算法分析的重要内容之一,因为排序算法的效率影响着程序的性能和稳定性,本文的目的是介绍常见的排序算法,并且通过代码示例演示它们的实现过程,需要的朋友可以参考下
    2023-06-06
  • Java实现非对称加密的三种方法

    Java实现非对称加密的三种方法

    本文主要介绍了Java实现非对称加密的三种方法,主要包括非对称加密算法--DH(密钥交换),非对称加密算法--RSA,非对称加密算法--EIGamal,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • MAC下基于maven使用IDEA走读TestNG源码解析

    MAC下基于maven使用IDEA走读TestNG源码解析

    这篇文章主要介绍了MAC下基于maven使用IDEA走读TestNG源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-06-06
  • 关于Java中properties文件编码问题

    关于Java中properties文件编码问题

    这篇文章主要介绍了关于Java中properties文件编码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • springboot支持https请求的实现

    springboot支持https请求的实现

    本文主要介绍了springboot支持https请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • java如何调用Groovy脚本

    java如何调用Groovy脚本

    这篇文章主要介绍了java如何调用Groovy脚本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 浅谈Java实现回溯算法之八皇后问题

    浅谈Java实现回溯算法之八皇后问题

    八皇后问题是一个古老而又著名的问题,是学习回溯算法的一个经典案例。今天我们就一起来探究一下吧
    2021-06-06
  • SpringBoot实现本地存储文件上传及提供HTTP访问服务的方法

    SpringBoot实现本地存储文件上传及提供HTTP访问服务的方法

    这篇文章主要介绍了SpringBoot实现本地存储文件上传及提供HTTP访问服务,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论