手写一个stater_教你手写一个spring-boot-starter组件

【springboot】手写spring-boot-starter组件

前言

starter会把所有用到的依赖包都包含进来,避免开发者自己去引入依赖所带来的麻烦。

虽然不同的starter实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties和AutoConfiguration。

Starter是一组可以让你很方便的在应用增加的依赖关系描述符的集合。或者可以这样理解,平时我们开发的时候很多情况下都会有一个模块依赖另一个模块,这个时候我们一般都是采用maven的模块依赖,进行模块的依赖,但是这种情况下我们完全可以采用Starter的方式,将需要被依赖的模块用Starter的方式去开发,最后直接引入一个Starter也可以达到这样的效果。

命名规则

由于SpringBoot官方本身就提供了很多Starter,为了区别那些是官方的,哪些是第三方的,所以SpringBoot官方提出:

第三方提供的Starter统一用xxx-spring-boot-starter

而官方提供的Starter统一用spring-boot-starter-xxx。

需求

下边我们将以Redisson为例,实现一个简易版的starter组件,通过starter组件将RedissonClient所需的jar和bean依赖到我们当前项目。

项目结构

创建Starter

首先我们创建一个redisson-spring-boot-starter的项目,并添加redisson依赖和spring-boot-starter依赖,如下

编写配置类

创建一个ConfigurationProperties用于保存配置信息

创建自动化配置类

创建一个AutoConfiguration,引用定义好的配置信息

在AutoConfiguration中实现bean的注入以及配置信息的读取

把这个类加入spring.factories配置文件中进行声明

创建spring.factories

创建additional-spring-configuration-metadata.json

additional-spring-configuration-metadata.json的作用:描述配置信息,在其他项目依赖当前starter组件时起到提示的作用。

接下来,我们通过运行mvn install命令,将这个项目打成jar包部署到本地仓库,提供给另一个服务调用。

测试

创建一个测试项目,依赖redisson-spring-boot-starter 。

application.properties配置文件

测试类

测试结果

从结果中,我们看到starter中定义的RedissonClient已成功注入到测试项目中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值