千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  一文学会SpringBoot自定义starter

一文学会SpringBoot自定义starter

来源:千锋教育
发布人:lxl
时间: 2023-03-09 15:26:45

一文学会SpringBoot自定义starter

  一. 引言

  相信现在有很多小伙伴都已经很熟悉SpringBoot技术了。它大大地简化了Spring应用的开发,极大地提高了项目的开发效率,受到广大开发者和企业的青睐。特别是SpringBoot官方针对各种不同的应用场景,提供了非常丰富的场景启动器(也称为起步依赖)。开发人员只需要在项目的POM文件中导入对应的场景依赖,并编写少量的配置,即可快速实现当前场景的应用开发,真正的实现开箱即用。

  今天通过这篇文章,并结合一个具体的案例来给各位小伙伴介绍一下,我们该如何自定义一个自己的SpringBoot场景启动器,毕竟有时候官方提供的starter不能完全满足我们所有的需求。同时也希望通过starter的自定义过程,能够加深大家对SpringBoot自动配置原理的理解。

  二. 需求说明

  我们先来看一段代码:

一文学会SpringBoot自定义starter

  上面我们定义了一个组件HelloService,它有一个非常简单的功能,就是能够根据调用者传递的名字返回一个打招呼的信息,返回的信息内容可以根据配置的前缀和后缀进行指定格式的设置。我们现在需要将这个功能做成一个Starter,将来在其他项目中可以直接以场景启动器的方式导入并使用。

  三. 设计思路

  回顾我们之前使用已经做好的starter,你会发现无非就是如下几个步骤:

  •   在POM文件中导入场景依赖;
  •   这个场景依赖中,包含了一个名为xxxAutoConfiguration的自动配置类;
  •   自动配置类按照一定的条件进行相关组件的自动装配;
  •   这些组件又绑定了名为xxxProperties属性配置类;
  •   属性配置类通过指定的前缀,从application.yml配置文件中读取属性的配置信息;
  •   最后在项目中直接使用这些配置好的组件。

  我们就参考这个步骤开始进行自定义starter的操作。

  四. 实现步骤

  Step1 业务定义

  创建一个空项目【customer-starter】,里面包含两个模块:

  •   启动器模块【hello-spring-boot-starter】;
  •   自动配置模块【hello-spring-boot-starter-configuration】

一文学会SpringBoot自定义starter

  其中启动器项目中无需任何源代码和配置文件,只需要引入自动配置项目的依赖即可。

一文学会SpringBoot自定义starter

  自动配置项目必须是一个SpringBoot工程,同时需要引入spring-boot-starter的依赖。

一文学会SpringBoot自定义starter

  Step2 自动配置

  编写自动配置项目中的内容。

一文学会SpringBoot自定义starter

  HelloService是整个自定义Starter要装配的核心对象,HelloServiceAutoConfiguration是一个配置类,HelloProperties是HelloService组件绑定的属性配置类,他们的代码分别如下:

  2.1 HelloService类

一文学会SpringBoot自定义starter

  2.2 HelloProperties类

一文学会SpringBoot自定义starter

  2.3 HelloServiceAutoConfiguration类

一文学会SpringBoot自定义starter

  Step3 工厂文件

  在自动配置项目中的resources目录中,提供一个名称为META-INF的目录,并在该目录下提供一个名为spring.factories的文件。

resources/META-INF/spring.factories

一文学会SpringBoot自定义starter

  spring.factories配置的内容如下:

一文学会SpringBoot自定义starter

  Step4 安装

  将这两个项目clean,并install到本地仓库。

  Step5 引入使用

  创建一个web项目进行自定义starter的使用测试。

  5.1 在应用中添加自定义starter依赖坐标

一文学会SpringBoot自定义starter

  5.2 编写配置信息

一文学会SpringBoot自定义starter

  5.3编写测试的Controller

  并在该Controller中自动注入自定义场景启动器中的HelloService组件。

一文学会SpringBoot自定义starter

  5.4 打开浏览器输入Controller中定义的访问地址

一文学会SpringBoot自定义starter

  通过测试发现,我们已经可以在其他项目中使用自定义的starter,并使用自动配置好的组件功能了!现在你知道该怎么自定义starter了吗?

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>