基于注解的SpringMVC配置
作者 : 霍琦
SpringMVC 是一个基于 DispatcherServlet 的 MVC 框架,每一个请求最先访问的都是 DispatcherServlet , DispatcherServlet 负责转发每一个 Request 请求给相应的 Handler , Handler 处理以后再返回相应的视图 (View) 和模型 (Model) ,返回的视图和模型都可以不指定,即可以只返回 Model 或只返回 View 或都不返回。在使用注解的 SpringMVC 中,处理器 Handler 是基于 @Controller 和 @RequestMapping 这两个注解的, @Controller 声明一个处理器类, @RequestMapping 声明对应请求的映射关系,这样就可以提供一个非常灵活的匹配和处理方式。
配置文件中需要处理,在 spring-mvc.xml 中增加配置 <context:component-scan base-package=" packageName " /> ,用于告知 Spring 扫描哪些包来获得 bean 组件。配置 <mvc:annotation-driven> , HandlerMapping 和 HandlerAdapter 两个 bean 的默认注册。
对注解的说明如下:
@Component : 使用基于注解和类路径扫描时,自动探查的候选组件。
@Controller : Component 的特例,用于标识是处理器类,通常和 RequestMapping 注解一起使用。
@Autowired :在 Spring 依赖注入中,对类成员变量等的自动装配。当接口存在两个实现类的时候必须使用 @Qualifier 指定注入哪个实现类,否则可以省略,只写 @Autowired 。
@RequestMapping :映射 web 请求到指定的处理类或处理方法。如果此注解在类级别上,则表示一相对路径,在方法级别上,则标记访问的路径
@RequestParam :方法级的参数和 web 请求参数的绑定;
@ResponseBody :方法返回值与 web 响应体的绑定,处理器方法的返回值作为响应体