注解
@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请求

浙公网安备 33010602011771号