上一篇博客介绍了Spring MVC的中的核心组件和工作流程,众所周知,实现同样的功能,相较于繁琐的配置文件而言,使用注解便简单高效的多。春季自2.0版本开始,陆续引入了一些注解用于简化Spring的开发本文就将介绍Spring MVC常用注解以及使用场景。

一,春季常用注解

@Controller - > 控制层

@Service - >业务层

@Repository - >道层

@Component - >仅仅表示一个组件(Bean),可以作用在任何层次。

     春天通过监测一个豆是否包含注解以及注解类型,确定该豆是否有春天容器进行管理,如果包含春注解,春天便会自动创建相应的的BeanDefinition对象,并注册到的ApplicationContext中。这些类就成成了春天受管组件。当一个豆被自动检测到时,会根据那个扫描器的BeanNameGenerator策略生成它的bean的名称,自动纳入春容器的管辖范围。

二,Spring MVC常用注解

Spring MVC作为Spring框架的web MVC产品,常用的注解当然必不可少的@Controller

1,@Controller

    直接作用于MVC中C(控制器控制层),控制层中每一个控制器都会加上这个注解,或者通过豆显示配置的形式,将该控制器交与春季容器管理。

2,@RequstMapping 

    一个)@RequstMapping主要作用于控制器的方法注解

          @RequstMapping SpringMVC-servlet的配置文件中,对控制器声明时的名称属性,形如:@RequstMapping(“/ hello.do”),同样的通过BeanName映射方式访问控制器,这里也是这个用途,通过@RequstMapping(“/ hello.do”)中/ hello.do的值组成URL访问路径,例如:http:// localhost:8091 / springMVC / hello。做

    b)  @RequstMapping 也可作用于整个控制器类,为此控制器指定唯一标识或者命名空间。

           如果在整个控制器类前加上@RequstMapping注解,则表明该控制器以此RequstMapping为标识,访问时,自然需要在方法的RequstMapping值前补充控制器的RequstMapping才可找到该控制器,再通过方法的RequstMapping值找到指定方法。

3,综合看来,@ RequstMapping注解的作用主要在于为控制器和控制器中的方法添加唯一标识,组成浏览器访问的URL地址,通过RequstMapping访问到指定控制器的指定方法。

三,Spring MVC注解应用

如图1所示,首先添加注解相关罐

2,在用SpringMVC-servlet.xml中中配置,指定注解使用范围 

[html]  查看纯 文本  
  1. <! - mvc的注解驱动 - >  
  2. <mvc:annotation-driven/>  
  3. <!-- 一旦有扫描器的定义mvc:annotation-driven不需要,扫描器已经有了注解驱动的功能 -->  
  4. <context:component-scan base-package="cn.itcast.springmvc"/>  
  5.   
  6.   
  7. <!-- 前缀+ viewName +后缀 -->  
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  9.     <!-- webroot到某一指定的文件夹的路径 -->  
  10.     <property name="prefix" value="/WEB-INF/jsp/"></property>  
  11.     <!-- 视图名称的后缀 -->  
  12.     <property name="suffix" value=".jsp"></property>  
  13. </bean>  

3、在Controller中使用注解

[html]  view plain  copy
  1. @Controller//用来标注当前类是springmvc的控制层的类  
  2. @RequestMapping("/test")//controller的唯一标识或者命名空间  
  3. public class TestController {  
  4.       
  5.     @RequestMapping("/hello.do")//用来访问控制层的方法的注解  
  6.     public String hello(){  
  7.         System.out.println(“你好springmvc与注释”);  
  8.         返回“jsp1 / index”;  
  9.     }