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层实现类的修改,其余的模块代码不需要任何修改

转载于:https://www.cnblogs.com/xugf/p/8672369.html

MVC模式和Maven项目构建相关推荐

  1. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  2. Maven学习总结(二)——Maven项目构建过程练习

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...

  3. jenkins pipeline、用户权限管理、插件下载地址更改、凭证管理、自由风格项目构建、maven项目构建、常用的构建触发器、邮件发送、SonarQube代码审查

    CI持续集成流程 pipeline jenkins安装pipeline插件: 简单使用: 查看流水线语法: 片段生成器: 2.0以后推荐使用声明式语法:右侧下拉框是一些步骤,都可以自动生成 Decla ...

  4. Java初级项目学习第一讲:Maven项目构建

    Maven项目构建 一.什么是Maven Maven这个单词来自于意第绪语(犹太语),意为知识的积累.Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金 ...

  5. Maven项目构建(一):什么是Maven?

    Maven项目构建(一):什么是Maven? ​ 作者:杨景文(javen666.com) Maven是一个项目构建和项目管理的工具. 视频教程:https://www.bilibili.com/vi ...

  6. maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化 ...

  7. Maven项目构建练习

    Maven学习第二篇: 上一篇简单的介绍下Maven入门的一些知识和环境搭建,也只有环境等基础安装好,才能进行下步的学习.这篇主要是Maven的自动化构建Java项目练习. 一.创建Maven项目 1 ...

  8. maven项目构建管理工具一站式全部搞定

    内容目录 一.maven的概述 二.maven环境搭建 三.maven常用命令 四.maven的坐标和仓库 五.创建maven项目 六.创建maven web项目 概述: maven是基于项目对象模型 ...

  9. Maven项目构建工具

    目录 1.Maven介绍 1.1Maven是什么 1.2为什么要使用maven 2.Maven安装 2.1下载Maven: 2.2解压并配置 2.3编辑Maven环境变量 2.3.1检查JDK环境变量 ...

最新文章

  1. 对象属性的调用_面向对象的三主线之一:Java类及类的成员(1)
  2. STM32开发 -- 主天线和分集天线
  3. 案例39-后台查询订单详情代码实现
  4. 新浪微博api(.net)时间格式问题
  5. Teams数据统计 - 聊天消息
  6. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
  7. 新年第一份“欧气”,“中国开发者大调查”第五批中奖名单出炉啦
  8. ExtJS 4中动态加载的路径设置
  9. 得到星期的sql语句和得到月末的sql语句
  10. ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
  11. mac终端命令大全介绍
  12. Ubuntu 设置 samba共享文件夹
  13. 深度学习笔试、面试题 二
  14. 数据库 PK,NN,UQ,AI,BIN,UN,ZF等的含义 记录
  15. Matplotlib 绘制条形图
  16. 大数据之Hadoop3简单入门(一)(通俗易懂)
  17. 禅道如何设置邮箱提醒
  18. 页面使用html生成一个n行n列表格,HTML静态网页:表格、表单
  19. 九大阵营的解释——转自DND规则
  20. android热敏打印机图片乱码,微信小程序小票打印功能(以及中文乱码的解决)...

热门文章

  1. 单引号oracle如何转义_如何在Oracle中预测和转义单引号'
  2. h5 数字变化_前端/h5 D3.js实现根据数据动态更新图形/类似进度实时变化效果
  3. 返回txt格式的文本使用编码 js_Node.js学习笔记第一天
  4. 源码分析 vue-cli 中安装依赖
  5. EOS 执行合约报错, CODE: 3090003
  6. 网络推广外包没有效果?很可能是在网络推广外包基础上出现问题!
  7. 网站优化如何摆脱竞争对手,将排名做到首页?
  8. 网站SEO优化该如何提高用户粘度?
  9. hessian java php_探讨Hessian在PHP中的使用分析
  10. oracle同时更新多列数据,ORACLE 11G 表联合更新多列