SpringMVC 学习系列 (1) 之 初识SpringMVC
2015-11-06 20:29
447 查看
1.前言:
与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题。由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论坛。找不到windows虚拟主机,且肯定不能换朋友主机的系统。刚开始时打算用mono把之前做的.Net MVC项目搭的框架运行一下看看能不能用,发现根本跑不起来(项目用了Spring.NET当时mono和Spring.NET还不兼容,Sping.NET论坛说是由于mono的反射实现机制的问题。好消息是最新的Spring.NET项目已经支持mono,虽然官网上说还有一些bug,但这相对于之前完全不能运行已经好太多了,相信以后会越来越好。详见SPRING-NET-MONO可能需要FQ,你懂的…)。
于是决定选择用java开发,最先开始看的是经典的SSH框架的一些资料,为此还特意买了一本书做参考,可没看多少就有疑问了,让我最不能接受的就是Struts2的一个action一个class的做法(评论中已经有朋友指出Struts2也可以实现多个Action方法的,非常感谢指正)。按照这种做法要实现一个对象的CURD基本操作就要4个class,而且java的一个class只能属于一个class文件,这样下来一个项目光action就要生成一堆class文件,而且文件里面只有一个action没有多少内容,太啰嗦了,感觉这样开发效率很低(以上感受仅是我当时看struts2是的感觉,如有不对的地方敬请批评指正),所以决定更换其它方式。恰好看到了Spring3的
Spring MVC的介绍,基于注解的controller,还有action的声明方式像极了.Net MVC,当即决定采用,于是便有了该系列文章。
约定:本系列所用的Spring版本为:spring-framework-3.2.5.RELEASE,Hibernate版本为hibernate-release-4.2.8.Final,采用Spring+Hibernate+Spring MVC的组合方式。
2.什么是Spring MVC:
Spring MVC属于SpringFrameWork的后续产品,它提供了构建 Web 应用程序的全功能 MVC 模块,与Struts2一样是一种优秀MVC框架,不同的是自Spring2.5引入了注解式controller及Spring 3以后的不断完善,使得采用Spring MVC框架开发结构清晰明了,效率大大提高。
3.注解式Spring MVC响应流程:
4.重要的接口和类的简单说明:
DispatcherServlet:前端控制器,用于接收请求。
HandlerMapping接口:用于处理请求的映射。
DefaultAnnotationHandlerMapping:HandlerMapping接口的实现,用于把一个URL映射到具体的Controller类上。
HandlerAdapter接口:用于处理请求的映射。
AnnotationMethodHandlerAdapter:HandlerAdapter接口的试下,用于把一个URL映射到对应Controller类的某个方法上。
ViewResolver接口:用于解析View。
InternalResourceViewResolver:ViewResolver接口的实现,用于把ModelAndView的逻辑视图名解析为具体的View。
与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题。由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论坛。找不到windows虚拟主机,且肯定不能换朋友主机的系统。刚开始时打算用mono把之前做的.Net MVC项目搭的框架运行一下看看能不能用,发现根本跑不起来(项目用了Spring.NET当时mono和Spring.NET还不兼容,Sping.NET论坛说是由于mono的反射实现机制的问题。好消息是最新的Spring.NET项目已经支持mono,虽然官网上说还有一些bug,但这相对于之前完全不能运行已经好太多了,相信以后会越来越好。详见SPRING-NET-MONO可能需要FQ,你懂的…)。
于是决定选择用java开发,最先开始看的是经典的SSH框架的一些资料,为此还特意买了一本书做参考,可没看多少就有疑问了,让我最不能接受的就是Struts2的一个action一个class的做法(评论中已经有朋友指出Struts2也可以实现多个Action方法的,非常感谢指正)。按照这种做法要实现一个对象的CURD基本操作就要4个class,而且java的一个class只能属于一个class文件,这样下来一个项目光action就要生成一堆class文件,而且文件里面只有一个action没有多少内容,太啰嗦了,感觉这样开发效率很低(以上感受仅是我当时看struts2是的感觉,如有不对的地方敬请批评指正),所以决定更换其它方式。恰好看到了Spring3的
Spring MVC的介绍,基于注解的controller,还有action的声明方式像极了.Net MVC,当即决定采用,于是便有了该系列文章。
约定:本系列所用的Spring版本为:spring-framework-3.2.5.RELEASE,Hibernate版本为hibernate-release-4.2.8.Final,采用Spring+Hibernate+Spring MVC的组合方式。
2.什么是Spring MVC:
Spring MVC属于SpringFrameWork的后续产品,它提供了构建 Web 应用程序的全功能 MVC 模块,与Struts2一样是一种优秀MVC框架,不同的是自Spring2.5引入了注解式controller及Spring 3以后的不断完善,使得采用Spring MVC框架开发结构清晰明了,效率大大提高。
3.注解式Spring MVC响应流程:
4.重要的接口和类的简单说明:
DispatcherServlet:前端控制器,用于接收请求。
HandlerMapping接口:用于处理请求的映射。
DefaultAnnotationHandlerMapping:HandlerMapping接口的实现,用于把一个URL映射到具体的Controller类上。
HandlerAdapter接口:用于处理请求的映射。
AnnotationMethodHandlerAdapter:HandlerAdapter接口的试下,用于把一个URL映射到对应Controller类的某个方法上。
ViewResolver接口:用于解析View。
InternalResourceViewResolver:ViewResolver接口的实现,用于把ModelAndView的逻辑视图名解析为具体的View。
相关文章推荐
- 在spring配置文件中的 <context:property-placeholder/>用途
- 解决spring 事务管理默认不支持SQLException等运行时异常
- java中leetcode之用Arraylist List实现杨辉三角
- Struts2框架学习<一>流程介绍
- 一个根据URI定位到spring mvc映射代码工具类
- JAVA实现对SQLServer增,删,改,查
- 【leetcode】【35】Search Insert Position
- java 多线程 数据流 内部类(播放音乐)
- Java四类八种数据类型
- Java基础语法(三)---数组
- JavaScrip单选,下拉框,文本框取值赋值--【DRP】
- MyEclipse 自动注释模板
- Java内存泄露原因详解
- SpringMVC避免表单的重复提交解决办法
- Java变量的内存管理
- Java 图像 处理
- Java Eclipse开发环境搭建及注意事项
- java 异常 集合
- 关于Java编程中的一些奇怪的错误(一)——版本冲突
- Java 代码性能优化总结