学习笔记:Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(一)
http://www.blogjava.net/bolo/archive/2011/05/23/349655.html
注意事项:
1. 设置m2eclipse
进入Perferences,选择Maven,去掉Download repository index updates on startup前的勾
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)
http://www.blogjava.net/bolo/archive/2011/06/01/351028.html
一、Spring MVC 3.0介绍
继Spring 2.0对Spring MVC进行重大升级后,Spring 2.5又为Spring MVC引入了注解驱动功能,
再到3.0时代,全面支持REST的网络服务和更容易的网络编程。
Spring MVC 3.0是如何支持REST的呢?
简单的说,它是通过@RequestMapping及@PathVariable注解提供的,
在@RequestMapping中指定value与method,就可以处理对应的请求。
二、Spring MVC流程
1、Spring MVC的核心是DispatcherServlet,当客户端发送一个请求时,这个请求经过一系列过滤器处理。然后DispatcherServlet会接收到这个请求。
2、DispatcherServlet会从HandlerMapping对象中查找与请求匹配的Controller,并将结果返回给DispatcherServlet。
3、DispatcherServlet将请求转发给目标Controller,如果定义有拦截器,则会经过这些拦截器处理。
4、标Controller处理完成业务逻辑后,会返回一个结果给DispatcherServlet。
5、DispatcherServlet根据结果查询ViewResolver,找到与之对应的视图对象,同样将结果返回给DispatcherServlet。
6、DispatcherServlet根据指定的显示结果,调用模板对象渲染view。
7、将view返回给客户端。
根据上面的说明,可以很很明显的看出,Spring MVC的核心是Servlet,并且创建的Controller其实也是一个Servlet。
三、Spring与struts2比较
另一个非常有名的MVC框架是Struts2,
Spring MVC的核心是Servlet,而Struts2的核心则是Filter。
一个常见问题:
Spring MVC启动时的配置文件中故意设置让spring不扫描带有@Service注解的类。为什么?
因为servlet-context.xml与service-context.xml不是同时加载,
如果不进行这样的设置,那么,spring就会将所有带@Service注解的类都扫描到容器中,
等到加载service-context.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,
直接导致的结果就是在service-context中的事务配置不起作用,发生异常时,无法对数据进行回滚。
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
http://www.blogjava.net/bolo/archive/2011/08/04/352845.html
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四)
http://www.blogjava.net/bolo/archive/2012/04/22/356210.html
一、Spring MVC常用注解说明
@Controller
在类上面定义,表明该类为控制器,返回字符串与redirect:xxx
@RequestMapping
在类或方法上面使用此注解,设置URL访问地址。它有两个属性,value指定访问路径,method指定指定请求方式,请求方式在RequestMethod这个类中,全部以常量形式定义,它默认使用
GET请求。
@RequestParam
指定Request请求参数,在方法参数中定义,相当于传统的request.getParameter()。
@PathVariable
获取URL访问路径变量,这是Spring MVC 3.0框架才加入的特性,基于RESTful风格的URL访问路径。
@ModelAttribute
全局式的方法,在一组URL访问路径中,每次都会执行,方法返回结果保存在module会话中。
@Service
在类上面定义,指定被注解的类是业务逻辑组件,如果不指定具体的Bean ID,则采用默认命名方式,即类名的首字母小写。之前在SSH2中,大象曾对Dao组件使用@Repository,本例只有
业务层,所以就只用@Service注解。
@Autowired
IoC自动注入功能,替换以前的set写法,在SSH2中就已经开始使用了。
@Qualifier
对同一接口类有不同实现指定具体的实现类。
@ResponseBody
同样定义在方法上,Ajax调用声明,指定方法返回结果为Ajax回调函数结果。这是Spring MVC 3.0框架中增加的一个新特性。
@InitBinder
初始化数据绑定与类型转换,将传入的参数转换为自定义类型,或者对参数进行自定义处理。
Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(五)
http://www.blogjava.net/bolo/archive/2012/04/23/370816.html
浙公网安备 33010602011771号