1、组件型注解
- @Controller:控制层注解(@RestController的区别,前者返回页面,后者返回json或xml格式)(特殊的@Component)
- @Repository:Dao层注解(特殊的@Component)
- @Service:业务层注解(特殊的@Component)
- @Component:在类前加,并spring识别为bean
2、请求和参数型注解
- @RequestMapping:处理请求地址,作用在类和方法上
有value(请求地址)、method(请求方式post、get等,默认get)、params(请求中必须包含的参数)、headers(必须包含的请求头)等属性
例:@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
@GetMapping和@PostMapping是其简化版
- @RequestParam:获取传入参数
有value(参数名称)、required(定义传入参数是否必须,默认为true)属性
@RequestMapping("/requestParams1.do")
public String requestParams1(@RequestParam(required = false) String name){
System.out.println("name = "+name);
return "index";
}
@RequestMapping("/requestParams2.do")
public String requestParams2(@RequestParam(value = "name",required = false) String names){
System.out.println("name = "+names);
return "index";
}
两种请入参方式是一样的,显示声明value的名称时,入参参数名和value一样,没有显示声明的话,像第一种方式声明的,入参参数名和函数参数变量名一样。
- @PathViriable:定义路径参数值
有value(参数名称)、required(参数是否必填)属性
@RequestMapping("/{myname}/pathVariable2.do") public String pathVariable2(@PathVariable(value = "myname") String name){
System.out.println("myname = "+name); return "index";
}
这个路径声明了{myname}作为路径参数,那么这一段路径将为任意值,@PathVariable将可以根据value获取路径的值。
- @ResponseBody:作用在方法上,将整个结果以某种格式返回
- @CookieValue:获取请求的cookie值
@RequestMapping("/requestParams.do")
public String requestParams(@CookieValue("JSESSIONID") String cookie){
return "index";
}