SpringBoot自定义starter

什么是springboot-starter

springboot-starter无处不在,相信开发过springboot项目的小伙伴们都使用过springboot-starter,例如我们在整合Redis的时候会使用到spring-boot-starter-data-redis,它封装RedisTemplate模板类,我们只需在application.yml 中配置一些属性就可以使用,非常方便。

是否曾想过为什么我们在 application.yml 中配置一些属性就可以直接在程序中注入并使用这些模板类呢? (相信你看完以下内容整体流程就非常清晰)


springboot-starter的好处

  1. 开箱即用,我们只需要简单的配置便可使用,提高研发人员的工作效率
  2. 屏蔽底层的具体细节,暴露配置属性及方法,减少学习使用成本
  3. 统一封装,统一管理

sptingboot-starter的作用

自定义starter的场景很多,例如:

  1. 发送短信需要对接不同服务商,可以封装一个发送短信的starter,屏蔽对接的细节,开发者只需简单配置就可使用该服务商发送短信
  2. OSS存储对接不同的云服务商,例如阿里云、七牛云、腾讯云等等,跟对接短信服务商类似
  3. 企业中间件的封装

自定义一个简单的starter

在yml中配置值,请求starter封装方法返回yml中的配置值,下面例子说明,非常简单,适合新手教学

  1. 创建一个SpringBoot项目

  2. 删除该项目不需要的启动类和配置文件,创建 META-INF/spring.factories 文件,文件目录结构以下图为准
    在这里插入图片描述

  3. 编写TestClient类,该类的主要是供其他开发者使用,可以类比成RedisTemplate模板类,逻辑非常简单只是提供了一个getName方法,如下图所示
    在这里插入图片描述

  4. 编写TestConfig配置类,让TestClient类加入到Spring容器中,@ConfigurationProperties作用读取 yml 文件中的配置设置到被此注解标注的类属性,如下图所示
    在这里插入图片描述

  5. 在spring.factories文件中,配置开发者自定义的configuration类,SpringBoot 能扫描到我们的 starter 注入 Bean,这是 SpringBoot 官方约定的写法,如下图所示
    在这里插入图片描述

  6. 最终的目录结构如下,如下图所示
    在这里插入图片描述

  7. 执行maven的install命令,让我们自定义好的starter类打包到本地仓库中,如下图所示
    在这里插入图片描述

  8. 这时我们使用另外一个SpringBoot项目引入该starter,如下图所示
    在这里插入图片描述

  9. 在yml中配置值,并编写测试类,如下图所示
    在这里插入图片描述
    在这里插入图片描述

  10. 启动当前项目,当我们在浏览器上请求getName方法时就显示出我们在yml中配置的configName值,如下图所示
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值