zoukankan      html  css  js  c++  java
  • MVC模式和Maven项目构建

    1、    尽管Servlet + JSP可以完成全部的开发工作,但是代码耦合度高、可读性差、重用性不好,维护、优化也不方便。所以才有了MVC。

             MVC是当前WEB开发的主流模式,核心是使用Struts、SpringMVC等框架管理URL映射、调度服务层和视图层。

    2、    Struts、SpringMVC等控制层框架可以实现服务层、视图层的调度,而且我们的想法是让它们只负责做这些工作。

             但是,在请求中包含了参数的情况下,如:多条件查询数据列表。

             是不是需要在控制器里面获取请求参数呢?传统的方式是这样的。

             如果添加或者删除某个查询条件,我们就需要去修改控制器代码。

             有一个较好的解决方案:在控制器之前添加Filter或者Interceptor,在里面获取请求参数并封装查询参数对象(Map、List或者自定义对象)存放到值栈或Request域,然后在控制器中获取这个查询参数对象,再调用service时传入即可。

             进一步,还可以把这些Filter或者Interceptor封装成单独的jar包,在WEB应用中配置依赖。

    3、    使用MVC模式开发的同时配合使用“面向接口编程(多态)”可以大大降低组件之间的耦合性。

             组件之间使用接口对象对接,通过Spring文件配置或注解扫描把实际使用的组件实现类对象管理起来,然后把实现类对象注入到调用组件。

             在之后的升级或者维护中,如果需要整体修改组件实现,只要替换组件实现类的jar文件,而不需要修改调用组件的任何代码。

    4、    可以使用maven解决依赖问题,这可以让模块化的分层架构更加清晰、组件之间的耦合页更低。

             简单的模块划分大致如下:实体类、dao层、dao层实现类、service层、service层实现类、WEB应用

             

             其实核心的模块就是:实体类、dao层、service层、WEB应用

             之间的依赖关系(黑色线表示)如下:

             

             在后期优化、升级过程中,如果我们使用Mybatis实现DAO层,我们只需要:

      • 使用Mybatis编写DAO层的实现类
      • 添加spring的配置文件
      • 制作jar包,上传到maven服务器
      • 把WEB层的hibernate dao依赖改成mybayis dao实现

             这样我们就完成DAO层实现类的修改,其余的模块代码不需要任何修改

  • 相关阅读:
    多项式全家桶学习笔记
    [题解] Luogu P2000 拯救世界
    [题解] LuoguP4389 付公主的背包
    [题解] CF438E The Child and Binary Tree
    拉格朗日插值法
    bzoj2788: [Poi2012]Festival
    暑假集训test-8-29
    luoguP4768 [NOI2018]归程
    HDU6331Problem M. Walking Plan
    暑假集训test-8-28
  • 原文地址:https://www.cnblogs.com/xugf/p/8672369.html
Copyright © 2011-2022 走看看