Spring MVC之@Controller和@RestController注解
@Controller
和@RestController
都是在SpringMVC
中使用,作用在类上,用于申明该类是一个SpringMVC Controller
对象,即一个控制器Bean
。
@Controller注解
Spring 使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping
注解,而使用了 @RequestMapping 注解的方法才是真正处理请求的处理器。
在SpringMVC
中声明控制器 Bean 时,只能使用**@Controller**。该注解组合了@Compoment
元注解。
@RestController注解
该注解是一个组合注解,组合了@Controller
和@ResponseBody
,若开发的是只提供数据的控制器,可以使用此注解;若没有此注解,则需在代码中加上@Controller
和@ResponseBody
两个注解。
SpringMVC配置
为了保证 Spring 能找到控制器,需要做如下配置:
web.xml配置
- 配置
Spring MVC
前端控制器DispatcherServlet
; - 配置初始化时,加载
springmvc.xml
文件; - 配置应用启动时就实例化前端控制器(可选)。
- 配置解析请求路径。
1 |
|
springmvc.xml文件配置
- 配置扫描
Controller
包下所下的所有java文件。 - 配置视图解析器,设置前后缀。视图解析器会根据配置路径将逻辑视图解析出物理视图。
- 配置处理器映射器和处理器适配器(此两项配置可选),当没有配置时,Spring 会使用默认的处理器映射器和处理器适配器来处理请求。在实际开发基本上不用配置。
1 | <!-- 把Controller交给spring管理 --> |
Spring MVC之@Controller和@RestController注解
http://blog.gxitsky.com/2018/01/01/SpringMVC-33-controller-annotation/