当前位置: 首页 > news >正文

SpringBoot自动装配和starter

自动装配

SpringBootApplication 注解中包含了EnableAutoConfiguration注解,这个注解底层又是import 注解,导入自动配置类导入选择器(AutoConfigurationImportSelecor ),这个选择器会去读取约定配置文件,从文件中一次性加载所有候选自动配置类,把这些配置类交给IOC容器,在 refresh() 中由 ConfigurationClassPostProcessor 解析,每个自动配置类上都有条件注解,满足条件 ,配置类里的 @Bean 生效 ,自动把组件注入IOC容器

流程

EnableAutoConfiguration注解,导入AutoConfigurationImportSelector

调用selectorImports方法,读取Meta-inf/spring 文件夹下的AutoConfiguration.importes文件,拿到所有自动配置类,根据配置类上的条件注解进行过滤符合条件的被加载为bean完成自动装配

条件注解

按需装配,避免冲突,如ConditionalOnMissingBean,允许用户自定义bean覆盖默认bean

Starter

Starter一键集成了某种场景,所需要的所有组件,配置。我们只要引入这个starter ,就能使用该场景,不用去找依赖,解决依赖。别人已经帮我们配好了。

原理就是,SpringBoot将组件和配置打包好,利用spi 机制和spring的条件装配,在spring启动的时候,完成一些复杂bean 的创建。

简化maven依赖配置,不用解决依赖冲突

如何自定义一个starter?

  • 写好自动配置类,带上configuration 注解,条件注解,绑定配置文件注解
  • 写好属性绑定类,负责配置信息属性的绑定
  • 创建starter工程,引入自定义配置类模块
  • 在meta-inf/spring 文件夹中,创建auto configuration.imports文件,写入自动配置类全限定名
  • 将starter打包

为什么要定制starter

独立于业务的功能模块封装成starter,可以被各个项目复用。比如发送短信、解决微服务项目的数据库连接池配置问题,redis引入、鉴权组件等

http://www.jsqmd.com/news/1091320/

相关文章:

  • design-resources-for-developers:开发者需要的设计资源,这一个仓库全齐了
  • SM4国密算法前后端加解密实战:从等保合规到工程落地
  • 支持新一代HDR的多光谱摄像头
  • 深度解析Win11Debloat:如何通过4个步骤快速优化Windows 11系统性能
  • 花 77 美元买来的教训:为什么你的「分层渐进」压缩让缓存每步都失效?
  • 技术建造者中的复杂构造与步骤控制
  • DELL PowerEdge T640服务器RAID配置与系统引导修复实战
  • 【大白话说Java面试题 第141题】【06_Spring篇】第1题:谈谈你对 IOC 的理解
  • 5分钟快速上手:Jellyfin中文元数据插件MetaShark终极指南
  • RM500U 5G模块debug及拨号上网测试
  • OpCore-Simplify:基于硬件抽象层的开源自动化配置系统
  • 生产 Agent 排障别先改 Prompt:先把 trace、tool span 和证据字段补齐
  • Visual C++运行库一键修复工具:3分钟解决Windows软件启动问题的终极方案
  • 十二年扎根天津,廖贵卿如何用“实”字诀做好普惠金融?
  • semicons/java_oci_manage 开源项目深度解析:基于 Java 与 OCI 协议的 Oracle 数据库高性能连接管理与自动化运维实战指南
  • 魔兽争霸3现代电脑运行终极指南:5分钟解决所有兼容性问题
  • Virtuoso反相器设计实战:从原理图到后仿真的全流程解析
  • MAF预定义ChatClient中间件-04]ReducingChatClient——精减对话历史又不丢失基本语义
  • DNS在线验证工具、在线查询、DNS地址查询、DNS验证、DNS查询
  • TI TLK10xL以太网PHY芯片MII/RMII接口时序与硬件设计实战指南
  • 免费开源ModBus调试工具QModMaster:5分钟快速上手完整指南
  • AI 哲学故事系列 · 第二讲:AI 是否有评判心
  • 开关电源模块全套测试项目总结
  • 上海人工智能实验室新论文:不换模型也能变强?MinerU2.5-Pro 把答案藏在样本里
  • COM3D2 MaidFiddler实时编辑器:5分钟掌握终极女仆定制技巧
  • 好用的水下电机怎么挑?水下电机如何选——基于低压智能路线的工程化观察
  • 解决AI翻译模型部署复杂性的技术挑战:Sakura启动器GUI架构解析与实施指南
  • 成都买茶叶店铺推荐:新手如何根据口感与场景选茶
  • ppt模板_0126_彩色话框
  • 数据加密传输