🚀🚀🚀Day26-SpringMVC常用注解
👉@Controller注解
✌✌org.springframework.stereotype.Controller注解用于指示Spring类的实例是一个控制器,使用@Controller注解的类不需要继承特定的父类或者实现特定的接口,相对之前的版本实现Controller接口变得更加简单。而且controller接口的实现类只能处理一个单一请求动作,而@Controller注解的控制器可以支持同时处理多个请求动作。
✌✌@Controller用于标记一个类,使用它标记的类就是一个SpringMVC Controller对象,即一个控制器类。Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,而使用@RequestMapping注解的方法才是真正处理请求的处理器。为了保证Spring能找到控制器。需要完成两件事:
- 在SpringMVC的配置文件的头文件中引入spring-context
- 使用<context:component-scan/>元素,该元素的功能为:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为Spring的Bean。base-package属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。
配置文件如下:
<context:component-scan base-package="org.XXX.controller">
👉@Autowired
作用:spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。
👉@ResponseBody
作用:@ResponseBody注解通常使用在控制层的方法上,用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter
接口转换为指定格式的数据如:json、xml等,通过Response响应给客户端。
👉@RequestBody
作用:用于获取请求体的内容
/**
* 接收请求
*/
@RequestMapping(path="/hello")
public String hello(@RequestBody String body) {
System.out.println("aaaa");
System.out.println(body);
return "success";
}
👉@RequestMapping注解
✌✌@RequestMapping注解可以用来注释一个控制器类,在这种情况下,所有方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value所指示的路径下。
属性 | 类型 | 是否必要 | 说明 |
---|---|---|---|
value | String[] | 否 | 用于将指定请求的实际地址映射到地址上 |
name | String | 否 | 给映射地址指定一个别名 |
method | RequestMethod | 否 | 映射指定请求的方法类型,包括GET,POST,HEAD,OPTIONS,PUT,PATCH,DELETE,TRACE |
consumes | String[] | 否 | 指定处理请求的提交内容类型(context-type),例如application/json、text/html等 |
produces | String[] | 否 | 指定返回的内容对象,返回类型必须是request请求头(Accept)中所包含的类型 |
headers | String[] | 否 | 指定request中必须包含某些指定的header值时,才能让该方法处理请求 |
params | String[] | 否 | 指定request中必须包含某些参数数值是,才让该方法处理 |