Spring MVC 常用以下几个注解
-
@Controller
@Controller
注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatcher Servlet 会自动 扫描注解了此注解的类,并将Web请求映射到了注解了@RequestMapping
的方法上。这里特别指出,在声明普通Bean时,使用@Component
、@Service
、@Repository
和@Controller
是等同的,因为@Service
、@Repository
、@Controller
都组合了@Component
元注解;但在Spring MVC 声明控制器Bean的时候,只能使用@Controller
。
-
@RequestMapping
@RequestMapping
注解是用来映射web请求(访问路径和参数)、处理类和方法的。
@RequestMapping
可注解在类或方法上。注解在方法上的@RequestMapping
路径会继承注解在类上的路径,@RequestMapping
支持Servlet
的request
和 response
作为参数,也支持对request
和 response
的媒体类型进行配置。
-
@ResponseBody
@ResponseBody
支持将返回值放在 response 体内,而不是返回一个页面。我们在很多基于Ajax
的程序时,可以以此注解返回数据 而不是页面;此注解可放置在返回值前或者方法上。
-
@RequestBody
@RequestBody
允许request
的参数在request
体中,而不是直接链接在地址后面。此注解放置在参数前。
-
@PathVariable
@PathVariable
用来接收路径参数,如 /news/2016-11-11
,可接收2016-11-11
作为参数,此注解放置在参数前。
-
@RestController
@RestController
是一个组合 注解,组合了@Controller
和 @ ResponseBody
,这就意味着当你只开发一个和页面交互数据的控制的时候,需要使用此注解。若没有此注解,要想实现上述功能,则需要自己在代码中加@Controller
和 @ResponseBody
两个注解。