DAO层,Service层,Controller层、View层

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

  1. DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。   
  2.   
  3. Service层:Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。   
  4.   
  5. Controller层:Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。   
  6.   
  7. View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示,   
  8.   
  9. DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势,Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。   
  10.   
  11. DAO设计的总体规划需要和设计的表,和实现类之间一一对应。   
  12.   
  13. DAO层所定义的接口里的方法都大同小异,这是由我们在DAO层对数据库访问的操作来决定的,对数据库的操作,我们基本要用到的就是新增,更新,删除,查询等方法。因而DAO层里面基本上都应该要涵盖这些方法对应的操作。除此之外,可以定义一些自定义的特殊的对数据库访问的方法。   
  14.   
  15. Service逻辑层设计   
  16.   
  17. Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。   
  18.   
  19. 在DAO层定义的一些方法,在Service层并没有使用,那为什么还要在DAO层进行定义呢?这是由我们定义的需求逻辑所决定的。DAO层的操作 经过抽象后基本上都是通用的,因而我们在定义DAO层的时候可以将相关的方法定义完毕,这样的好处是在对Service进行扩展的时候不需要再对DAO层进行修改,提高了程序的可扩展性。  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233945.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MFC控件 — 进度条【案例】「建议收藏」

    MFC控件 — 进度条【案例】「建议收藏」打开游戏或者其他一些软件时,时常会看到刚开始时有一个进度条在加载,有点酷炫的感觉。对于MFC进度条的使用,下面用一个案例介绍一下。案例:进度条单步加载和自动连续加载步骤:1.按下图在对话框中添加一个进度条,一个编辑框,和3个按钮,并为进度条添加一个控件变量进度条变量:m_Progress2.在初始化函数中对进度条进行初始化,代码如下:BOOLCSpinDlg::OnInitDia…

    2022年7月16日
    19
  • Android开发:CompoundButton.onCheckedChangeListener和RadioGroup.onCheckedChangeListener冲突问题「建议收藏」

    Android开发:CompoundButton.onCheckedChangeListener和RadioGroup.onCheckedChangeListener冲突问题「建议收藏」在今天的开发工作当中,要同时用到ToggleButton和RadioGroup的监听事件,ToggleButton的监听事件需要导入CompoundButton.onCheckedChangeListener,RadioGroup的监听事件需要导入RadioGroup.onCheckedChangeListener,但是这两个导入是冲突的,而且这两个事件是必须用到的。怎么办呢?不要导入任何事件,在…

    2022年6月6日
    44
  • python进阶(5)异常模块

    python进阶(5)异常模块异常模块下面介绍python常用的异常模块AttributeError异常AttributeError试图访问一个类中不存在的成员(包括:成员变量、属性和成员方法)而引发的异常Attribut

    2022年7月31日
    5
  • Android学习十九:ContentProvider初步

    Android学习十九:ContentProvider初步

    2022年1月19日
    41
  • c++ fstream流seekg()重定位问题

    c++ fstream流seekg()重定位问题  在看c++中fstream时,突然想到一个问题。当读取完整个文件之后如果再想读取一遍该如何去写?首先想到seekg()函数把读指针重定位到文件开头。但是我试了一下发现指针并没有移动,后来才搞清楚原来是当读指针指到EOF后就没办法再进行指针的控制了。#include<iostream>#include<fstream>#include<string&g…

    2022年6月10日
    32
  • SXSSFWorkbook 转 InputStream「建议收藏」

    SXSSFWorkbook 转 InputStream「建议收藏」publicstaticInputStreamworkbookConvertorStream(SXSSFWorkbookworkbook){InputStreamin=null;try{//临时缓冲区ByteArrayOutputStreamout=newByteArrayOutputStream();…

    2022年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号