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层实现类的修改,其余的模块代码不需要任何修改
转载于:https://www.cnblogs.com/xugf/p/8672369.html
MVC模式和Maven项目构建相关推荐
- Maven学习总结(2)——Maven项目构建过程练习
Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...
- Maven学习总结(二)——Maven项目构建过程练习
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...
- jenkins pipeline、用户权限管理、插件下载地址更改、凭证管理、自由风格项目构建、maven项目构建、常用的构建触发器、邮件发送、SonarQube代码审查
CI持续集成流程 pipeline jenkins安装pipeline插件: 简单使用: 查看流水线语法: 片段生成器: 2.0以后推荐使用声明式语法:右侧下拉框是一些步骤,都可以自动生成 Decla ...
- Java初级项目学习第一讲:Maven项目构建
Maven项目构建 一.什么是Maven Maven这个单词来自于意第绪语(犹太语),意为知识的积累.Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金 ...
- Maven项目构建(一):什么是Maven?
Maven项目构建(一):什么是Maven? 作者:杨景文(javen666.com) Maven是一个项目构建和项目管理的工具. 视频教程:https://www.bilibili.com/vi ...
- maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习
点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化 ...
- Maven项目构建练习
Maven学习第二篇: 上一篇简单的介绍下Maven入门的一些知识和环境搭建,也只有环境等基础安装好,才能进行下步的学习.这篇主要是Maven的自动化构建Java项目练习. 一.创建Maven项目 1 ...
- maven项目构建管理工具一站式全部搞定
内容目录 一.maven的概述 二.maven环境搭建 三.maven常用命令 四.maven的坐标和仓库 五.创建maven项目 六.创建maven web项目 概述: maven是基于项目对象模型 ...
- Maven项目构建工具
目录 1.Maven介绍 1.1Maven是什么 1.2为什么要使用maven 2.Maven安装 2.1下载Maven: 2.2解压并配置 2.3编辑Maven环境变量 2.3.1检查JDK环境变量 ...
最新文章
- 对象属性的调用_面向对象的三主线之一:Java类及类的成员(1)
- STM32开发 -- 主天线和分集天线
- 案例39-后台查询订单详情代码实现
- 新浪微博api(.net)时间格式问题
- Teams数据统计 - 聊天消息
- linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
- 新年第一份“欧气”,“中国开发者大调查”第五批中奖名单出炉啦
- ExtJS 4中动态加载的路径设置
- 得到星期的sql语句和得到月末的sql语句
- ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
- mac终端命令大全介绍
- Ubuntu 设置 samba共享文件夹
- 深度学习笔试、面试题 二
- 数据库 PK,NN,UQ,AI,BIN,UN,ZF等的含义 记录
- Matplotlib 绘制条形图
- 大数据之Hadoop3简单入门(一)(通俗易懂)
- 禅道如何设置邮箱提醒
- 页面使用html生成一个n行n列表格,HTML静态网页:表格、表单
- 九大阵营的解释——转自DND规则
- android热敏打印机图片乱码,微信小程序小票打印功能(以及中文乱码的解决)...
热门文章
- 单引号oracle如何转义_如何在Oracle中预测和转义单引号'
- h5 数字变化_前端/h5 D3.js实现根据数据动态更新图形/类似进度实时变化效果
- 返回txt格式的文本使用编码 js_Node.js学习笔记第一天
- 源码分析 vue-cli 中安装依赖
- EOS 执行合约报错, CODE: 3090003
- 网络推广外包没有效果?很可能是在网络推广外包基础上出现问题!
- 网站优化如何摆脱竞争对手,将排名做到首页?
- 网站SEO优化该如何提高用户粘度?
- hessian java php_探讨Hessian在PHP中的使用分析
- oracle同时更新多列数据,ORACLE 11G 表联合更新多列