注解

@Value("${参数名}") 

@Value("${springfox.documentation.enabled}")

 

@Primary

对同一个接口,可能会有几种不同的实现类,指定默认的实现类

 

@Resource和@Autowired

1.@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

2.@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。

3.@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。

所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。

 

@RestController和@Controller

1.@RestController注解相当于@ResponseBody + @Controller合在一起使用

返回json数据不需要在方法前面加@ResponseBody注解,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据

2.@Controller可以配合视图解析器InternalResourceViewResolver返回到指定页面


@RequestParam

用来处理Content-Type为application/x-www-form-urlencoded(默认类型如果不指定),使用value属性可以指定获取参数的key。

 

@RequestBody

一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据,在GET请求中没有请求体所以一般不适用,在post请求中必须指定Content-Type后才能使用它,如ajax请求指定发送格式为application/json。

 

@RequestMapping
用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

用在方法上 :

value,请求的URL路径,支持URL模板,正则表达式。和Ant路径表达式

method,指定HTTP请求的方法,GET,POST,PUT,DELETE等 ,不指定默认全部支持

consumes,指定HTTP请求头中的Content-Type,例如Content-Type=application/json

produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回

params: 指定request中必须包含某些参数值是,才让该方法处理

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求

 

@GetMapping

处理get请求   

 

@PostMapping

处理post请求

posted @ 2021-10-04 22:05  漩涡·海绵宝宝  阅读(54)  评论(0)    收藏  举报