尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SpringBoot自动装配和starter

SpringBoot自动装配和starter
📅 发布时间:2026/6/29 19:27:05

自动装配

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引入、鉴权组件等

相关新闻

  • 支持新一代HDR的多光谱摄像头
  • 深度解析Win11Debloat:如何通过4个步骤快速优化Windows 11系统性能
  • 花 77 美元买来的教训:为什么你的「分层渐进」压缩让缓存每步都失效?

最新新闻

  • 2026在线去除本地视频水印工具推荐!免费无水印导出、安全无需下载电脑端
  • iTrustee Client安全认证机制:CA认证与TEE通信的7个安全层级详解
  • 北京IT培训机构有哪些:深度解析北京IT职业教育市场现状
  • MicroPython BLE HID开发指南:打造无线键盘、鼠标和游戏手柄
  • “线代”初探:数、方向与连续运算的陷阱
  • AI不只会写脚本:如何让大模型帮你搭建高可用Python系统

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号