GitHub源码地址
概述
我们使用 Spring Boot,基本上都是沉醉在它 Stater 的方便之中。Starter 为我们带来了众多的自动化配置,有了这些自动化配置,我们可以不费吹灰之力就能搭建一个生产级开发环境,其实 Starter 的核心就是条件注解 @Conditional
,当 classpath
下存在某一个Class
时,某个配置才会生效,下面就以七牛云为例,写一个简单的Spring Boot Starter
。
项目目录结构
代码实现
1、创建一个普通的Maven项目,pom文件中加入以下依赖
1 |
|
2、编写一个MqiniuProperties
,用来接受 application.properties
中注入的值,如下:
1 | package cn.mrain22.qiniu; |
3、编写校验类MqiniuCondition
,用来校验用户必要的配置信息是否填写。
1 | package cn.mrain22.qiniu; |
4、编写供调用的接口MqiniuService
1 | package cn.mrain22.qiniu; |
5、编写默认的实现类MqiniuServiceImpl
1 | package cn.mrain22.qiniu; |
6、接下来就是我们的重轴戏,自动配置类的定义.MqiniuServiceAutoConfiguration
1 | package cn.mrain22.qiniu; |
7、让spring boot
加载我们的装配类,需要在resource
目录下新建META-INF/spring.factories
内容如下:
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.mrain22.qiniu.MqiniuServiceAutoConfiguration |
本地安装
完成以上步骤,一个简单Spring Boot Starter
也就写完了,下一步就是将其发布到Maven仓库,我这里就简单点,只发布到本地。
方式很简单,在IntelliJ IDEA
中,点击右边的 Maven Project
,然后选择 Lifecycle
中的 install
,双击即可,如下:
双击完成后,这个 Starter
就安装到我们本地仓库了。
使用 Starter
在我们需要的项目中引入依赖即可。如下:
1 | <dependency> |
application.properties
中添加以下属性。
1 | mqiniu.access-key=your qiniu`s ak |
代码使用
1 |
|
#