springboot系列:史上最最最全springboot常用注解 | 超级详细,建议收藏

Posted bug菌¹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot系列:史上最最最全springboot常用注解 | 超级详细,建议收藏相关的知识,希望对你有一定的参考价值。

👨‍🎓作者:bug菌

✏️博客:CSDN掘金

💌公众号:猿圈奇妙屋

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

         嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

       小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章 点亮👍吧,您的点赞三连( 收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

        学习了前四期内容,我们算已经半只jio踏进了大门,从项目框架搭建到yaml配置项目启动到多环境动态切换再到stater引入,其实我们已经对springboot有了一定的基础,接下来就要真正步入实战演练了,但在实战之前啊,我们还需要做一件事,那就是熟悉springboot常用的注解,这对日后项目实战有着事半功倍的奇效。大家可得好好学哦~

        我们都知道SpringBoot是采用纯java代码所创,不再需要配置繁杂的xml等配置文件,在配置中也可享受面向对象所带来的好处,类型安全对重构提供了良好的支持,减少复杂配置文件的同时亦能享受到springIoC容器提供的功能。其实啊,有这些便利,很大程度都归结于注解的功劳,那先来看看,基本的常用注解有那些吧~

二、常用注解🔥

ps:由于注解过多,小伙伴们可采用ctrl+F 来进行搜索哦。

  • @SpringBootApplication
说明:申明让 spring boot自动给程序进行必要的配置,这个配置等同于: @Configuration , @EnableAutoConfiguration 和  @ComponentScan 三个配置。
  • @ImportAutoConfiguration
说明:导入配置类,一般做测试的时候使用,正常优先使用@EnableAutoConfiguration. 

  • @EnableAutoConfiguration
说明:自动配置。
  • @SpringBootConfiguration
说明:这个注解实际就是一个@Configuration,标识启动类也是一个配置类。
  • @ComponentScan
说明:组件扫描,可自动发现和装配一些Bean。
  • @Component
说明:可配合CommandLineRunner使用,在程序启动后执行一些基础任务。
  • @RestController
说明:@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
  • @ResponseBody
说明:该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用
  • @RequestMapping
说明:提供路由信息,负责URL到Controller中的具体函数的映射。
  • @Autowired
说明:自动导入依赖的bean。
  • @Inject
说明:等价于默认的@Autowired,只是没有required属性;
  • @PathVariable
说明:获取参数。

@JsonBackReference

说明:解决嵌套外链问题。
  • @Service
说明:一般用于修饰service层的组件。
  • @Bean
说明:用@Bean标注方法等价于XML中配置的bean。
  • @Value
说明:注入Spring boot application.properties配置的属性的值。
  • @Resource
说明:@Resource(name=”name”,type=”type”);没有括号内内容的话,默认byName。与@Autowired干类似的事。

三、jpa注解🔥

        如下是介绍一些常用的jpa注解,仅供参考。

什么是jpa注解?jpa是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

  • @Entity,@Table(name="")
说明:表明这是一个实体类。一般用于 jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话, @Table可以省略
  • @MappedSuperClass
说明:用在确定是父类的 entity上。父类的属性子类可以继承。
  • @NoRepositoryBean
说明:一般用作父类的 repository,有这个注解, spring不会去实例化该 repository
  • @Column
说明:如果字段名与列名相同,则可以省略。
  • @Id
说明:表示该属性为主键。
  • @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)
说明:表示主键生成策略是 sequence(可以为 AutoIDENTITYnative等, Auto表示可在多个数据库间切换),指定 sequence的名字是 repair_seq
  • @SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1)
说明: namesequence的名称,以便使用, sequenceName为数据库的 sequence名称,两个名称可以一致。
  • @Transient
说明:表示该属性并非一个到数据库表的字段的映射, ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为 @Transient,否则, ORM框架默认其注解为 @Basic。
  • @Basic(fetch=FetchType.LAZY)
说明:标记可以指定实体属性的加载方式。
  • @JsonIgnore
说明:作用是 json序列化时将 Java bean中的一些属性忽略掉,序列化和反序列化都受影响。
  • @JoinColumn(name=”loginId”)
说明:一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。
  • @OneToOne、@OneToMany、@ManyToOne
说明:对应hibernate配置文件中的一对一,一对多,多对一。

四、Lombok注解🔥

  • @Setter
说明:注解在属性上;为属性提供  setting 方法。
  • @Getter
说明:注解在属性上;为属性提供  getting 方法。
  • @Data
说明:注解在类上;提供类所有属性的  getting 和  setting 方法,此外还提供了 equalscanEqualhashCodetoString 方法。
  • @Log4j2 
说明:注解在类上;为类提供一个 属性名为 log 的  log4j 日志对象,和 @Log4j注解类似。
  • @NoArgsConstructor
说明:注解在类上;为类提供一个无参的构造方法。
  • @AllArgsConstructor
说明:注解在类上;为类提供一个全参的构造方法。
  • @EqualsAndHashCode
说明:默认情况下,会使用所有非瞬态( non-transient)和非静态( non-static)字段来生成 equalshascode方法,也可以指定具体使用哪些属性。
  • @toString
说明:生成 toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。
  • @NoArgsConstructor@RequiredArgsConstructor and @AllArgsConstructor
说明:无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,只能自己手写了。
  • @NonNull
说明:注解在属性上,如果注解了,就必须不能为 Null。
  • @val
说明:注解在属性上,如果注解了,就是设置为 final类型,可查看源码的注释知道。

五、事务注解🔥

  • @Transactional

  说明:在Spring中,事务有两种实现,分别是编程式事务和声明式事务。

  1. 编程式事务: 编程式事务使用TransationTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务,spring推荐使用TransationTemplate。
  2. 声明式事务: 建立在AOP基础上,其本质是对方法前后进行拦截,然后再目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用。

六、全局异常处理🔥

  • @ControllerAdvice:
说明:包含@Component。可以被扫描到。统一处理异常。
  • @ExceptionHandler(Exception.class):
说明:用在方法上面表示遇到这个异常就执行以下方法。

七、springMVC相关注解🔥

  • @RequestMapping:
说明:@RequestMapping(“/path”):表示该控制器处理所有“/path”的UR L请求。RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
  • @RequestParam:
说明:用在方法的参数前面。
  • @PathVariable:
说明:路径变量。参数与大括号里的名字一样要相同。

... ... 

       ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

八、文末🔥

        如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

        最后送大家两句我很喜欢的话,与诸君共勉!


☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。

🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。


​​​

💌如果文章对您有所帮助,就请留下您的吧!(#^.^#);

💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

💗如果对文章有任何疑问,还请文末留言或者加群吧;

💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

以上是关于springboot系列:史上最最最全springboot常用注解 | 超级详细,建议收藏的主要内容,如果未能解决你的问题,请参考以下文章

史上最最最最最最最最全Python爬虫总结

史上最全面的Spring Boot配置文件详解

深入Java微服务之网关系列4: SpringCloud gateway详解(史上最全)

深入Java微服务之网关系列4: SpringCloud gateway详解(史上最全)

Spring Boot 第二弹,配置文件详解-史上最全

史上最全!最新阿里Java高级面试题及答案