@Controller注解类型
org.springframework.stereotype.Controller注解类型用于指示Spring类的实例是一个控制器,其注解形式为@Controller。该注解在使用时不需要再实现Controller接口,只需要将@Controller注解加入到控制器类上,然后通过Spring的扫描机制找到标注了该注解的控制器即可。
@Controller注解在控制器类中的使用示例如下:
package com.itheima.controller;
import org.springframework.stereotype.Controller;
...
@Controller
public class FirstController{
...
}
为了保证Spring能够找到控制器类,还需要在Spring MVC的配置文件中添加相应的扫描配置信息,具体如下:
1) 在配置文件的声明中引入spring-context;
2) 使用<context:component-scan>元素指定需要扫描的类包。
一个完整的配置文件示例如文件1所示。
文件1 springmvc-config.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
7 http://www.springframework.org/schema/context
8 http://www.springframework.org/schema/context/spring-context-4.3.xsd">
9 <!-- 指定需要扫描的包 -->
10 <context:component-scan base-package="com.itheima.controller" />
11 </beans>
在文件1中,<context:component-scan>元素的属性base-package指定了需要扫描的类包为com.itheima.controller。在运行时,该类包及其子包下所有标注了注解的类都会被Spring所处理。
与实现了Controller接口的方式相比,使用注解的方式显然更加简单。同时,Controller接口的实现类只能处理一个单一的请求动作,而基于注解的控制器可以同时处理多个请求动作,在使用上更加的灵活。因此,在实际开发中通常都会使用基于注解的形式。
注意:
使用注解方式时,程序的运行需要依赖Spring的AOP包,因此需要向lib目录中添加spring-aop-4.3.6.RELEASE.jar,否则程序运行时会报错。