![](https://img-blog.csdnimg.cn/direct/c3746b46aff143668178fe120f62de94.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringBoot starter 最佳实践与源码分析
文章平均质量分 95
SpringBoot 近年来已经成为 Java 应用的必备框架; 而 SpringBoot starter 模式已经成为各大中间件集成到 SpringBoot 应用的首选方式,通过引入 xxx-starter 实现快速集成。保证了应用程序的扩展性和集成性,形成了一个繁荣的生态
面汤放盐
这个作者很懒,什么都没留下…
展开
-
第十二节 SpringBoot Starter 系列结束语
对于刚参加工作的同学,训练写一个 Starter,也将是提升技术能力的有效方式。3.16 晚上,终于将 mybatis-spring-boot-starter 的案例写出来,并正确运行了,但是已经凌晨了。3.31 整个系列快完工了,大概十来章,但是还比较粗糙,还需要一个较长的时间来润色优化。3.14 当我想写一个 Starter 案例的时候,发现无从下笔,感觉是一个阻碍,写作并不是那么容易。4.5 一整体,整理自动装配的源码流程,是一个繁琐的过程,也是比较难得部分,到凌晨12点,休息了。原创 2024-05-24 21:37:26 · 862 阅读 · 0 评论 -
第十一节 SpringBoot Starter 面试题
虽然学了这么多,流程也十分清楚,但是能够将自己知道的表达出来,还需自己总结,然后内化成自己的,不然还是会在面试的时候出现卡壳。这样就得不偿失了。希望通过本教程,能够深入理解 SpringBoot Starter 的原理,能够总结回答好这个问题。最终拿下 offer。已同步发布到公众号:面汤放盐第十一节 SpringBoot Starter 面试题 - 掘金 (juejin.cn)原创 2024-05-24 21:33:28 · 731 阅读 · 0 评论 -
第十节 SpringBoot Starter 实战之 redis 滑动窗口
选择一个合理的业务场景。比如我选择了 滑动窗口这个场景。创建新的Maven项目,并引入依赖,通常命名需要遵循Spring Boot的命名规范,通常是-spring-boot-starter代码实现,以及其他类的引入编写自动配置类。编写文件,在src/main/resources/META-INF/spring.factories中注册自定义的自动配置类打包并发布到仓库,并在其他项目测试。原创 2024-05-24 21:29:34 · 1133 阅读 · 0 评论 -
第九节 设计 Starter 不能忽视的细节
我们要定义一个生产可用的 Starter ,还有几个细节,我们必须要关注。这些细节可以很好的帮助我们写出更优秀的 Starter。原创 2024-05-24 21:25:57 · 1230 阅读 · 0 评论 -
第八节 条件装配案例讲解
相对地,@ConditionalOnMissingClass(value = "redis.clients.jedis.Jedis") 注解在 InMemoryCacheConfig 类上,表明如果类路径不包含 Redis 的 Jedis 客户端类,则创建和注册 InMemoryCacheService 为 CacheService 的实现。在这个条件装配的例子中,Spring Boot 应用会自动检查 Redis 客户端库是否存在,并基于检查结果来决定使用哪个缓存实现。原创 2024-05-24 20:43:10 · 917 阅读 · 0 评论 -
第七节 ConfigurationClassParser 源码分析
tips: ConfigurationClassParser 是 Springframework 中的重要类。本章主要是源码理解,有难度和深度,也枯燥乏味,可以根据实际情况选择阅读。位置:org.springframework.context.annotation.ConfigurationClassParserConfigurationClassParser 它是解密 configuration 的关键。理解 ConfigurationClassParser 对理解整个 Spring 框架至关重要。原创 2024-05-24 20:27:50 · 1036 阅读 · 0 评论 -
第六节 自动装配源码理解
自动装配是 Spring 框架用来减少配置的显式需求而引入的一个特性,该特性通过@Autowired或者@Resource注解实现依赖对象的自动注入。而 Spring Boot 在此基础上进一步发展,提出了更高级的自动配置(Auto-configuration)概念。原创 2024-05-24 00:44:47 · 1310 阅读 · 0 评论 -
第五节 Starter 的加载全貌
tips:下载源码,再结合本章内容,学习整个加载过程。上一章,我们理解了 spring.factories 的触发时机,但放在 SpringBoot 的整个加载过程来讲,只能算部分。而这一章,将从 SpringBoot 的加载全貌,进一步理解 Starter 的加载时机。原创 2024-05-24 00:32:20 · 447 阅读 · 0 评论 -
第四节 Starter 加载时机和源码理解
接下来,我们通过 debug 的方式来探索 Starter 被加载的过程。原创 2024-05-23 23:32:27 · 729 阅读 · 0 评论 -
第三节 mybatis-spring-boot-starter 案例分析
tips:可以利用 docker-desktop 快速搭建 MySQL、Redis 等中间件上一章,我们完成了一个自定义 Starter;这一章,我们来看看 Mybatis 是如何使用 Starter,通过学习进一步学习 Starter。原创 2024-05-23 23:19:46 · 1110 阅读 · 1 评论 -
第二节 快速自定义一个 Starter
创建一个新的 Maven 项目作为 Starter 项目,主要是一些业务实现类创建一个或多个配置类,使用 @Configuration 注解创建 spring.factories 文件,位置:src/main/resources/META-INF/spring.factories ,在文件中添加对自动配置类的引用使用 @ConfigurationProperties 注解创建一个属性类,以支持从 application.properties 或 application.yml 文件中读取配置。原创 2024-05-22 23:49:02 · 692 阅读 · 0 评论 -
第一节 为什么会是 SpringBoot Starter
集成第三方服务:例如,为某个云服务商提供的消息队列服务创建一个 Starter,当应用需要接入该服务时,只需要引入这个 Starter 即可完成相关的客户端依赖、认证信息以及连接配置等步骤。组织内部框架整合:如果公司内部有一些共用的基础组件或中间件,比如统一的日志框架、监控系统、权限管理模块等,可以将其封装成自定义 Starter,方便各项目快速复用和部署。原创 2024-05-22 23:08:49 · 968 阅读 · 0 评论