springboot系列:史上最最最全springboot常用注解 | 超级详细,建议收藏
Posted bug菌¹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot系列:史上最最最全springboot常用注解 | 超级详细,建议收藏相关的知识,希望对你有一定的参考价值。
👨🎓作者:bug菌
💌公众号:猿圈奇妙屋
🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。
🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系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
(可以为Auto
、IDENTITY
、native
等,Auto
表示可在多个数据库间切换),指定sequence
的名字是repair_seq
@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1)
说明:name
为sequence
的名称,以便使用,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
方法,此外还提供了equals
、canEqual
、hashCode
、toString
方法。
@Log4j2
说明:注解在类上;为类提供一个 属性名为log
的log4j
日志对象,和@Log4j
注解类似。
@NoArgsConstructor
说明:注解在类上;为类提供一个无参的构造方法。
@AllArgsConstructor
说明:注解在类上;为类提供一个全参的构造方法。
@EqualsAndHashCode
说明:默认情况下,会使用所有非瞬态(non-transient
)和非静态(non-static
)字段来生成equals
和hascode
方法,也可以指定具体使用哪些属性。
@toString
说明:生成
toString
方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。
@NoArgsConstructor
,@RequiredArgsConstructor
and@AllArgsConstructor
说明:无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,只能自己手写了。
@NonNull
说明:注解在属性上,如果注解了,就必须不能为
Null。
@val
说明:注解在属性上,如果注解了,就是设置为
final
类型,可查看源码的注释知道。
五、事务注解🔥
- @Transactional
说明:在Spring中,事务有两种实现,分别是编程式事务和声明式事务。
- 编程式事务: 编程式事务使用TransationTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务,spring推荐使用TransationTemplate。
- 声明式事务: 建立在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常用注解 | 超级详细,建议收藏的主要内容,如果未能解决你的问题,请参考以下文章
深入Java微服务之网关系列4: SpringCloud gateway详解(史上最全)