码迷,mamicode.com
首页 > 编程语言 > 详细

浅谈MVC, Spring MVC,

时间:2018-08-13 22:06:20      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:分享   方便   alt   简单   jdbc   技术分享   技术   验证   引用   

 

一个典型的java web 从架构上看起来应该是这个样子:

技术分享图片

1. web浏览器发送http请求到服务端, 被controller(servlet)获取并进行处理.

2. Controller (Servlet)调用核心业务逻辑 model部分.

3. Model进行数据库存取操作, 并将操作结果返回给model.

4. Controller将业务逻辑处理结果交给view(JSP), 动态输出HTML内容.

5. 动态生成的HTML内容返回到浏览器中显示.

技术分享图片

Spring MVC提供了一个DispacherServlet(可以Spring MVC是以Servlet技术为基础的),这个Servlet把Web应用中Servlet中经常要实现的功能封装起来并提供一层公共抽象,想象对应于一个Web请求后端要做的事情,比如:
  • URL映射(对应HTTP URL和方法,应该调用什么代码)
  • 权限验证(当前的URL是否允许当前用户访问)
  • 参数解析(如何从Servlet中获得参数)
  • 数据绑定(如何将Servlet中的参数,绑定到业务逻辑对象中)
  • 数据验证(判断数据是否符合业务规则,比如邮件格式是否正确)
  • 视图解析(使用哪个视图模板进行渲染)
  • 模型传递与视图渲染(将数据传递给模板,并且在模板中引用)
  • ...
有了Spring MVC,你只需写简单的POJO代码(如图所示,用POJO实现Controller),或者实现Spring MVC给你提供的接口(比如实现Interceptor做权限判断),就能完成这些繁琐的功能。
POJO是Plain Old Java Object的缩写,是软件开发大师Martin Fowler提出的一个概念,指的是一个普通Java类。也就说,你随便编写一个Java类,就可以称之为POJO。之所以要提出这样一个专门的术语,是为了与基于重量级开发框架的代码相区分,比如EJB,我们编写的类一般都要求符合特定编码规范,实现特定接口、继承特定基类,而POJO则可以说是百无禁忌,灵活方便。

而ORM的作用就非常直观了,无须赘述,如图所示它提供了与数据库操作的一层中间抽象,这样Model的代码自然会更加简单。Spring MVC基本可以帮你屏蔽Servlet的API,ORM则可以帮你屏蔽JDBC的API了,也就是说你在更高的抽象层次上写程序了,更高的抽象层次一般意味着以更符合我们思维的方式来思考,自然效率更高。这事实上是软件技术发展的一个重要驱动力之一。你想想,从汇编语言发展出高级语言,从文件系统发展出数据库,其实本质规律是类似的。

图中的每一个小方块其实都是大量的Java类来实现,Controller与Model之间,Model与数据访问对象之间的这些箭头,意味这些Java类之间存在大量复杂的依赖关系。Spring的核心功能依赖注入,正是用于管理Java对象之间的依赖关系,所以第一部分我们说Spring是一个一站式的粘合框架,它像神奇的胶水一样,可以以松耦合的方式有机的粘合在一起。

 

浅谈MVC, Spring MVC,

标签:分享   方便   alt   简单   jdbc   技术分享   技术   验证   引用   

原文地址:https://www.cnblogs.com/it-dennis/p/8953981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!