学透 Spring:从入门到项目实战
丁雪丰
美团研究员
1073 人已学习
立即订阅
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
时长 07:11
时长 15:51
时长 00:10
时长 02:03
时长 00:39
学透 Spring:从入门到项目实战
15
15
1.0x
00:00/00:00
登录|注册

第 4 章 从 Spring Framework 到 Spring Boot(2)

4.3 自动配置

Spring Boot 可以根据 CLASSPATH、配置项等条件自动进行常规配置,省去了我们自己动手把一模一样的配置复制来复制去的麻烦。既然框架能猜到你想这么配,那它自己就能帮你搞定,如果它的配置不是我们想要的,再做些手动配置就好了。
我们已经在代码示例 1-1 中看到过 @SpringBootApplication 注解了,查看这个注解,可以发现它上面添加了 @EnableAutoConfiguration,它可以开启自动配置功能。这两个注解上都有 exclude 属性,我们可以在其中排除一些不想启用的自动配置类。如果不想启用自动配置功能,也可以在配置文件中配置 spring.boot.enableautoconfiguration=false,关闭该功能。

4.3.1 自动配置的实现原理

自动配置类其实就是添加了 @Configuration 的普通 Java 配置类,它利用 Spring Framework 4.0 加入的条件注解 @Conditional 来实现“根据特定条件启用相关配置类”,注解中传入的 Condition 类就是不同条件的判断逻辑。Spring Boot 内置了很多条件注解,表 4-2 中列举了 org.springframework.boot.autoconfigure.condition 包中的条件注解。
表 4-2 Spring Boot 内置的条件注解
条件注解生效条件
@ConditionalOnBean存在特定名称、特定类型、特定泛型参数或带有特定注解的 Bean
@ConditionalOnMissingBean与前者相反,不存在特定 Bean
@ConditionalOnClass存在特定的类
@ConditionalOnMissingClass与前者相反,不存在特定类
@ConditionalOnCloudPlatform运行在特定的云平台上,截至 2.6.3 版本,代表云平台的枚举类支持无云平台、CloudFoundry、Heroku、SAP、Kubernetes 和 Azure,可以通过 spring.main.cloud-platform 配置强制使用的云平台
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Spring Boot的自动配置功能及其定制方法,以及如何利用Spring Boot提供的特性来简化应用程序的配置和开发工作。通过`@SpringBootApplication`注解中的`@EnableAutoConfiguration`实现自动配置功能,自动配置类利用Spring Framework 4.0的条件注解`@Conditional`实现根据特定条件启用相关配置类,以及Spring Boot的属性加载优先级和配置文件加载顺序。此外,还介绍了如何编写自己的自动配置与起步依赖,展示了Spring Boot的灵活性和扩展性。文章还提到了如何在脱离Spring Boot的情况下实现自动配置。读者可以通过本文快速了解Spring Boot的自动配置功能及其定制方法,为简化应用程序的配置和开发工作提供了有益的参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《学透 Spring:从入门到项目实战》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部