SpringBoot_原理-自定义starter
一般自动配置类都是放在xxx-starter-autoconfigurer依赖下。
1.创建一个空项目,项目有两个模块:starter模块的maven项目(引入configuer),configuer模块的springboot项目(由于configuer模块是被依赖来使用的,因此不需要这个主程序类,可以删除掉)
》starter创建
》configuer创建
2.在starter的pom.xml引入configuer模块
3.在configuer模块引入spring-boot-start(这个是所有starter都得引入的基础starter,在这里引入也行,在starter的pom.xml直接引入也可以)
4.编写一个properties类
5.编写一个对外服务的类
6.编写自动配置类
7.将自动配置类写到指定路径下的文件中,用于被加载到ioc容器中
8.安装这两个模块到仓库中,便于其他项目使用
9.可以创建一个springboot工程测试以下,在pom.xml引入刚才写的starter
10.测试
总结:写一个starter时,里面最主要有三类角色:
1.xxxAutoConfiguration:自动配置类,它的作用就是加载用户或系统所需要的组件,并加载和导入相关的xxxProperties到ioc容器中,方便它导入的组件来获取xxxProperties的属性。
2.xxxxProperties:提供xxxAutoConfiguration导入的组件中所需要的属性值,xxxxProperties的属性值真正来源是在配置文件中的。
3.xxxAutoConfiguration导入的组件:组件被加到ioc容器中,属性值的获取依赖xxxProperties并且他们的属性值很多是在加入到容器前就已经赋值的了;我们在使用组件的时候直接利用@Autowired等注解直接获取就行,并不需要关注它如何导入ioc,因为这部分工作并不由我们来做。只要自动配置类启动了,这些组件也就会在ioc中了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~