springMVC框架 深入研究(上)

一、前言:

大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。

官方的下载网址是:http://www.springsource.org/download (本文使用是的Spring 3.0.5版本)


Struts2也是比较优秀的MVC构架,优点非常多比如良好的结构。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降。Struts2的多层拦截器、多实例action性能都很好。可以参考我写的一篇关于Spring MVC与Struts2与Servlet比较的文章 http://elf8848.iteye.com/admin/blogs/698217


Spring3 MVC的优点:

1、Spring3 MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。

2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)

3、Spring3 MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。


Struts2的众多优点:略... (呵呵,是不是不公平?)


众多文章开篇时总要吹些牛,吸引一下读者的眼球,把读者的胃口调起来,这样大家才有兴趣接着往后看。本文也没能例外。不过保证你看了之后不会后悔定有收获。



二、核心类与接口:


先来了解一下,几个重要的接口与类。现在不知道他们是干什么的没关系,先混个脸熟,为以后认识他们打个基础。


DispatcherServlet -- 前置控制器

3f5703e2-b29e-3eda-a7ac-acbe4ce7a6d3.jpg


HandlerMapping接口 -- 处理请求的映射

HandlerMapping接口的实现类:

SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller

DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上

c6b474c8-91fa-3009-a0e9-c868ca52baf2.jpg


HandlerAdapter接口 -- 处理请求的映射

AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

8475318e-d2e2-3dd2-81e9-036090f0aad1.jpg


Controller接口 -- 控制器

由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,

所以我们并没有用到这个接口。

67b19bd0-e44c-311a-8d05-80d013cf44ae.jpg




HandlerInterceptor 接口--拦截器

无图,我们自己实现这个接口,来完成拦截的器的工作。



ViewResolver接口的实现类

UrlBasedViewResolver类 通过配置文件,把一个视图名交给到一个View来处理

InternalResourceViewResolver类,比上面的类,加入了JSTL的支持

7d130bbd-577e-3b0f-94b4-8a4fb4c779d5.jpg


View接口

JstlView类

c1e3caff-135b-3420-90b9-d3d2033c759b.jpg


LocalResolver接口

d631fde8-9c47-3902-a437-6ec6141556b5.jpg


HandlerExceptionResolver接口 --异常处理

SimpleMappingExceptionResolver实现类

5b6a3428-abf3-3f05-9d26-f0232fb33ec7.jpg



ModelAndView类

无图。


三、核心流程图


本图是我个人画的,有不严谨的地方,大家对付看吧。总比没的看强。

36f1d740-cff9-36c6-96ab-f78abe28bd0b.jpg



你可能感兴趣的:(注解,spring,springMVC,@Entity,mvc标签)