SpringBoot常用注解简单总结

说明:此文章会一直补充完善!

@RequestBody 、@Requestparam区别

主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的) POST请求
@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
当同时使用@RequestParam 和 @RequestBody时,@RequestParam()指定的参数可以是普通元素、数组、集合、对象等等
(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。
如果参数时放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到;
如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或则形参前 什么也不写也能接收。
@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面的类)时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。

注意事项:
如果某个参数没有value的话,在传json字符串给后端时,要么干脆就不把该字段写到json字符串中,要么写value时, 必须有值,null 或""都行。千万不能什么都不写!

@JsonAlias

实现:json转模型时,使json中的特定key能转化为特定的模型属性;但是模型转json时,对应的转换后的key仍然与属性名一致,

有多个相同的key的json字符串中,转换为模型时,会以相同的几个key中,排在最后的那个key的值给模型属性复制,因为setter会覆盖原来的值!

@JsonProperty

json转模型时,使json中的特定key能转化为指定的模型属性;同样的,模型转json时,对应的转换后的key为指定的key

@JsonAlias注解需要依赖于setter、getter,而@JsonProperty注解不需要。

@RequestParam

从request的url中取值!

注:如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行(不管其是否有值,当然可以通过设置该注解的required = false 属性来调节是否必须传),如果没有xxx名的话,那么请求会出错,报400。

注:如果参数前不写@RequestParam(xxx)的话,那么就前端可以有可以没有对应的xxx名字才行,如果有xxx名的话,那么就会自动匹配;没有的话,请求也能正确发送。

@Autowired

只按照byType注入。

默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false

@Qualifier

@Qualifier结合@Autowired一起使用

@Qualifier按照可以指定Bean的名字

@Resource

@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入

@Resource有 2 个属性nametype

如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。如果没有匹配,按照byType进行装配。

@RequestMapping、@PostMapping区别

@PostMapping的注解 访问的时候只能使用post方式

@RequestMapping 访问的时候如果 method没有指定方式,则post和get方法都可以使用!

@Configuration、@Bean

@Configuration 标注在类上,配置spring容器(应用上下文)。相当于把该类作为spring的xml配置文件中的<beans>。@Configuration注解的类中,使用@Bean注解标注的方法,返回的类型都会直接注册为bean。何一个标注了@Configuration的Java类定义都是一个JavaConfig配置类:

@Bean标注在方法上(返回某个实例的方法),等价于spring的xml配置文件中的,作用为:注册bean对象其返回值将作为一个bean定义注册到Spring的IoC容器,如果不定义名字,方法名将默认成该bean定义的id。返回的类型即为注册bean的类型。

@RestController 、 @Controller

@RestController 是@Controller 和 @ResponseBody 组合注解。
@ResponseBody,此注解之后不会再走试图处理器,将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML
数据。前后端数据交互常用这个注解!

参考:SpringBoot中@Configuration注解_loongkingwhat的博客-CSDN博客_springboot@configuration注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值