常用注解小记

  1. @Autowired

    非常常用。
    spring的注解,用于完成自动装配。自动装配说白了就是为对象赋值的时候,用于创建属性的实例,然后再利用反射机制,将实例化好的属性,赋值给对象。
    @Autowired默认按照类型进行自动装配,若在IOC容器中进行查找的时候,如果找到两个同样类型的,会按照名字去匹配,若没有名字相同的就会抛异常。
    

在这里插入图片描述

  1. @PostConstruct

    比较常用。
    网上很多人说是Spring的注解,但是我点进去看了一下,它在javax.annotation包下,我觉得这应该是java自带的注解吧。
    Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。
    通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:
    

Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)

在项目中的应用,我遇到过的就是在Spring项目中加载数据字典。网上还有一种应用,是在Spring项目定时任务中的使用,贴过来记录一下。
spring项目的定时任务
spring自带的@schedule,没有开关,项目启动总会启动一个线程;
做项目的时候就使用Java的timer,这个设置开关即可自由的控制,关闭的时候,不会启动线程;
Java的timer也需要找到一个启动类,可以放到main函数里面启动,这样的话,代码的耦合性太高了,而使用PostConstruct是很干净的。
出处:https://blog.csdn.net/qq_37636695/article/details/84791468

  1. @RequestBody

    非常常用。
    一般用于controller层接收前端传来的对象参数。
    用这个注解接收参数前台必须采用post请求的方式,且@RequestBody只能有一个,若需要传递多个参数,可以根据需要搭配或仅使用@RequestParams来完成。
    注:
    后端@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面的类)时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。
    若前端传递的对象中某属性赋值为"",当后端对应对象属性为String类型时,接收到的为"";若后端对应对象属性为Integer类型时,接收到的为null。
    若前端传递的对象中某属性在后端无法找到对应,默认不处理。
    参考:
    https://blog.csdn.net/justry_deng/article/details/80972817

  2. @RequestParams

    非常常用。
    是springmvc中接收普通参数的注解。
    语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
    value:表示参数名,即前端页面传过来的参数名,要求必须一致,否则将会报错400。
    defaultValue:参数默认值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
    required:表示是否要强制包含该参数,默认值为false,表示允许请求中不包含该参数,并且该参数值会为设为null。true表示该请求中必须包含该参数否则报错。
    注:
    若不使用该注解,其实一样是可以接收参数的,要求controller方法中的参数名称要跟form中name名称一致。使用该注解,若配置了value,那么form中name名称要与value后的名称一致。

  3. @PathVariabl

    不怎么常用。
    一般用于绑定路径中的占位符参数到方法参数的变量中,无论get还是post请求都可以。但若是绑定了,但请求路径中没有该参数,将会报错。
    

注:
如果URL中无参数,将会出错;如果URL有参数,但是没有使用@PathVariabl该注解,那么URL的参数不会默认与方法参数绑定!方法里的参数会默认绑定表单里面对应的参数!
参考:
https://www.cnblogs.com/helloworld6379/p/9501943.html

  1. @Data

idea中lombok插件的注解,主要作用是提高代码的简洁。可以省去实体类get、set和toString方法的代码量。
使用方式需要在maven的pom文件中添加依赖,一般idea下载插件后,在类名上方添加这个注解,导包的时候就会提示自动加入依赖了。

  1. @Transient

java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。

@transient 就是在给某个javabean上需要添加个属性,但是这个属性你又不希望给存到数据库中去,仅仅是做个临时变量,用一下。不修改已经存在数据库的数据的数据结构。

参考:
https://blog.csdn.net/rongxiang111/article/details/86476028

以上仅为个人学习过程中常用到的注解,结合一些博主的文章和个人理解的总结,如有错误,请随时指出。
未完待续…

  1. @RestController

  2. @RequestMappinp

  3. @PutMapping

  4. GetMapping

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮叮当当0543

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值