@Controller 、@Service、@Component

把一个类标注成可以由springmvc统一调遣的控制器类。三个注解仅名称不同,作用相同。

@RequestMapping

RequestMapping注解的属性:
(1)value,method
value:指定请求的实际地址,指定的地址可以是URI Template模式;
method:指定请求的method类型, GET、POST、PUT、DELETE等;
value的uri值可以为以下三类:普通的具体值;含有某变量的一类值;含有正则表达式的一类值;

(2)consumes,produces
consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

(3)params,headers
params:指定request中必须包含某些参数值时,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

@ResquestBody

用于获取请求题内容。直接使用得到是key=value&key=value…结构的数据。get请求不适用

属性:required:是否必须有请求体。默认值是ture。当取值为true时,get请求方式就会报错。如果取值为alse,get请求得到是null

@GetMapping等和@RequestMapping的区别

  @RequestMapping通常用于标注类,不限定请求方法。
  @GetMapping通常用于标注方法,直接限定请求方法。

@Resource和@Autowired

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入,两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

@PathVariable

用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

@ResponseBody

作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用

@RestController

我们经常见到一些控制器实现了REST的API,只为服务于JSON,XML或其它自定义的类型内 容,@RestController用来创建REST类型的控制器,与@Controller类型。@RestController就是这样一种类型,它 避免了你重复的写@RequestMapping与@ResponseBody。

@RequestScope

标注一个组件类的实例的存活范围是一个web的request

@SessionAttributes

作用:把参数存到session域中,只能用于类上

同时用于多次执行控制器方法间的参数共享

参数:value:用于指定存入的属性名称

type:用于指定存入的数据类型