Spring Boot 最核心的 25 个注解,都是干货!

Spring Boot 最核心的 25 个注解


1、@SpringBootApplication

这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。

其实这个注解就是@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan 这三个注解的组合,也可以用这三个注解来代替 @SpringBootApplication 注解。

2、@EnableAutoConfiguration

允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。

如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。

3、@Configuration

这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类来进行注册。

4、@SpringBootConfiguration

这个注解就是 @Configuration 注解的变体,只是用来修饰是 Spring Boot 配置而已,或者可利于 Spring Boot 后续的扩展。

5、@ComponentScan

这是 Spring 3.1 添加的一个注解,用来代替配置文件中的 component-scan 配置,开启组件扫描,即自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。

前面 5 个注解可以在这篇文章《Spring Boot 最核心的 3 个注解详解》中了解更多细节的。

6、@Conditional

这是 Spring 4.0 添加的新注解,用来标识一个 Spring Bean 或者  Configuration 配置文件,当满足指定的条件才开启配置。

7、@ConditionalOnBean

组合 @Conditional 注解,当容器中有指定的 Bean 才开启配置。

8、@ConditionalOnMissingBean

组合 @Conditional 注解,和 @ConditionalOnBean 注解相反,当容器中没有指定的 Bean 才开启配置。

9、@ConditionalOnClass

组合 @Conditional 注解,当容器中有指定的 Class 才开启配置。

10、@ConditionalOnMissingClass

组合 @Conditional 注解,和 @ConditionalOnMissingClass 注解相反,当容器中没有指定的 Class 才开启配置。

11、@ConditionalOnWebApplication

组合 @Conditional 注解,当前项目类型是 WEB 项目才开启配置。

当前项目有以下 3 种类型。

enum Type {

/**

* Any web application will match.

*/

ANY,

/**

* Only servlet-based web application will match.

*/

SERVLET,

/**

* Only reactive-based web application will match.

*/

REACTIVE

}

12、@ConditionalOnNotWebApplication

组合 @Conditional 注解,和 @ConditionalOnWebApplication 注解相反,当前项目类型不是 WEB 项目才开启配置。

13、@ConditionalOnProperty

组合 @Conditional 注解,当指定的属性有指定的值时才开启配置。

14、@ConditionalOnExpression

组合 @Conditional 注解,当 SpEL 表达式为 true 时才开启配置。

15、@ConditionalOnJava

组合 @Conditional 注解,当运行的 Java JVM 在指定的版本范围时才开启配置。

16、@ConditionalOnResource

组合 @Conditional 注解,当类路径下有指定的资源才开启配置。

17、@ConditionalOnJndi

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-viFKAH36-1718716892817)]

最新整理电子书

[外链图片转存中…(img-POG99wIS-1718716892818)]

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是现代化的Java应用程序开发框架,其核心注解。下面就是 Spring Boot核心的27个注解的详细解释: 1. @SpringBootApplication: 组合注解,包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan。它标注一个主程序类,表示这是一个 Spring Boot 应用。 2. @RestController: 标注一个类,表示这个类是一个控制器,同时也会返回 Json 格式的数据。 3. @RequestMapping: 定义一个HTTP请求映射到控制器方法它可以有多个属性,包括路径、HTTP请求类型、请求头、参数等。 4. @GetMapping: 等同于@RequestMapping(method = RequestMethod.GET) 5. @PostMapping: 等同于@RequestMapping(method = RequestMethod.POST) 6. @PutMapping: 等同于@RequestMapping(method = RequestMethod.PUT) 7. @DeleteMapping: 等同于@RequestMapping(method = RequestMethod.DELETE) 8. @PathVariable: 映射 URL 请求路径中的占位符到方法参数中,可以在 URL 中使用 {variable} 格式来定义一个占位符。 9. @RequestParam: 映射请求参数到方法参数中。 10. @RequestBody: 请求头对象数据类型转换。 11. @RestControllerAdvice: 全局异常捕获处理。 12. @Validated: 验证请求参数的合法性。 13. @JsonFormat: 格式化输出的 Json 日期。 14. @JsonIgnore: 序列化时忽略某字段。 15. @JsonProperty: 反序列化时取指定的字段。 16. @Configuration: 声明一个类作为Java配置文件。 17. @ComponentScan: 自动扫描指定包下的所有 Spring 组件。 18. @ImportResource: 加载 xml 配置文件。 19. @Bean: 声明一个方法为 Bean,可供程序使用。 20. @Qualifier: 指定自动装配候选者的限定符。 21. @Autowired: 自动装配 Bean。 22. @Resource: 自动装配 Bean。 23. @Value: 注入配置文件中的属性。 24. @ConditionalOnMissingBean: 当容器中没有指定Bean时才会将其实例化。 25. @EnableConfigurationProperties: 开启配置文件注入功能。 26. @ConfigurationProperties: 把配置文件中的属性值注入到Bean中。 27. @EnableAsync: 开启异步任务支持。 以上就是 Spring Boot核心的27个注解,熟练掌握这些注解,将有助于编写完整的 Web 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值