Spring MVC 常用注解
Spring MVC怎么使用在Spring MVC快速搭建初体验进行了体验,那么Spring MVC就是什么?不得不先说下什么是MVC及其与三层架构是什么关系。
Spring MVC与普通的Servelet本质区别是什么在实现一个自定义MVC中有清晰的比较。
那MVC和三层架构有什么关系呢?实际上MVC只存在三层架构的表现层。M实际上就是数据模型,是包含数据的对象;同时在Spring MVC里,有一个专门的类叫Model,用来和View之间的数据交互、传值;View值的视图页面View,包含JSP等;C当然就是控制器(@Controller标记的类)。
Spring MVC常用注解:
配置类:
@EnableWebMVC,作用于配置类(@Configuration标记)
其直接import了DelegatingWebMvcConfiguration类,进行了一些默认配置,可参考Spring高级特性之一: Aware之ApplicationContextAware - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)关于Aware介绍:
控制类
@Controller,Spring相关介绍中已经介绍过,但是也有区别:
Spring MVC针对Controller提供了两个注解@Controller和@RestController。当在一个Controller类中添加了@RestController注解时,该类中所有使用了@RequestMapping的方法就会返回响应体(Response body)。如果使用的是@Controller注解,则是会将HTML部分的代码也一起返回给调用者;如果不想将HTML中部分代码一并返回,可以使用@ResponseBody来达到同样的目的。
需要特别指出的是,在声明普通Bean的时候,使用@Component、@Service、@Repository、@Controller是同等的,因为其都组合了@Component元注解,只是在SpringMVC声明控制器Bean的时候,只能使用@Controller或者@RestController。
@RequestMapping,url映射
@RequestMapping注解时用来映射Web请求(访问路径和参数)、处理类和方法的。其可以使用在方法和类上,如果使用在类上,那么该类中所有注解的方法都会继承类中所声明的属性(路径)。其还有两个简化的注解@GetMapping和@PostMapping,分别处理Get和Post请求。
@ResponseBody,响应
参考Spring MVC参数绑定(如何接收请求参数及返回参数) - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中使用。
@RequestBody,请求
此注解放置在参数前,参考Spring MVC参数绑定(如何接收请求参数及返回参数) - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中使用。
@PathVariable
其种类接收路径参数。如/news/001,可以接收001作为参数,此注解放置在参数前。
@RestController
参考@Controller。