自定义spring-boot-starter

本文介绍了如何自定义一个spring-boot-starter项目,包括项目构建步骤、配置映射、自动装配入口类的创建,以及验证测试过程。通过实例展示了自定义starter在简化开发过程中的作用,并预告了对spring boot自动装配原理的后续分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

约定优于配置是一种软件设计范式,spring boot便是遵从这一范式设计的,它去除了spring框架带来的各种复杂的配置,利用自动装配功能为各种属性配置好默认值,开发者只需要关注私有配置便可以快速高效的搭建一个spring boot项目。

今天这篇我们简单的自定义一个spring-boot-starter项目,让大家感受下spring boot自动装配的强大。


二、项目构建

首先我们应当创建一个项目,项目的命名方式一般为xxx-spring-boot-starter,该命名表示此项目并非spring官方发布的,例如mybatis-spring-boot-starter,如果是spring官方发布的,命名方式一般都是spring-boot-starter-xxx,例如spring-boot-starter-web。

我们创建一个maven项目名叫custom-spring-boot-starter,在pom.xml文件中引入spring-boot-autoconfigure,在这里我用的版本是2.2.1,如下图

接着,我们创建customeProperties类,用来映射配置文件对应的值,如下图

然后我们创建CustomAutoConfiguration类,这是自动装配的入口类,我这里设置的默认值username:admin,password:123456,如下图所示

最后我们在resource下面创建META-INF文件夹,在该文件下创建spring.factories文件,在该文件中输入

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.gzh.custom.spring.boot.autoconfigure.CustomAutoConfiguration,如下图所示

到这里我们的custom-spring-boot-starter已经创建完毕,接下来我们新建一个spring boot项目,将custom-spring-boot-starter引入到spring boot项目中观察它自动配置的效果。


三、验证测试

创建spring boot项目,我们命名为gzh-springboot,在pom.xml文件中引入spring-boot-starter-web和custom-spring-boot-starter两个依赖,如下图:

添加springboot启动类,我命名为GzhSpringbootApplication,内容如下:

添加TestController,用来测试,内容如下:

接着我们就启动这个项目,观察控制台,控制台打印信息如下所示:

我们可以看到我们的custom-spring-boot-starter已经自动加载进去了,接下来我们请求test链接看看效果

这是我们自定义starter设置的默认值,接下来我们在application.yml文件中配置相关属性,文件内容配置如下

接着我们重启项目,再访问test链接,结果如下图所示

通过结果我们发现我们的自定义starter已经成功实现,感兴趣的朋友可以在这个基础上扩展出一些功能,让其更实用。


四、小结

为什么要自定义starter呢?因为在开发过程中我们经常会遇到一些独立于业务模块之外的功能,这个时候我们就可以将这些功能封装成一个starter,然后其他模块要使用时只需要在pom文件中引入该模块就可以使用了,例如我们的日志模块,就可以这样封装。

本篇文章我们利用spring boot的自动装配功能实现了一个custom-spring-boot-starter,那么spring boot如何实现自动装配功能的?以及自动装配的实现原理是什么?后面有时间我会对spring boot的源码进行分析一遍


感兴趣的读者朋友可以 关注本公众号,和我们一起学习探究。



本人因所学有限,如有错误之处,望请各位指正!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值