当前位置:首页 > 高端制造 > 正文

编写SpringBoot-Starter其实很简单

开发自己的starterstarter的好处是,集成众多依赖,提供一个一站式的依赖项。Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,SpringBoot就能自动扫描并加载相应的...

开发自己的starterstarter的好处是,集成众多依赖,提供一个一站式的依赖项。Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置。使用者只需......

开发自己的starter

starter的好处是,集成众多依赖,提供一个一站式的依赖项。Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,SpringBoot就能自动扫描并加载相应的模块。

命名

spring官方的starter命令为spring-boot-starter-xxx,所以我们开发的项目不要以spring-boot开头。建议写成:xxx公司组织-spring-boot-starter-yyy模块

开发步骤

1.新建Maven项目,在项目的POM文件中定义使用的依赖;

2.新建配置类,写好配置项和默认的配置值,指明配置项前缀;

3.新建自动装配类,使用@Configuration和@Bean来进行自动装配;

4.新建文件,指定Starter的自动装配类;

具体代码

1,新建一个springboot项目,在pom文件中增加以下依赖:

/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/depency

2,配置类


关键是要指定配置项的前缀。这些配置项,也可以设置默认值。

3,自动装配类

自动装配类是整个starter的逻辑核心。根据配置项的值,自动注入合适的bean。

在这个项目中,有一个抽象的AbstractMyService,代表客户端会使用的服务bean。

MyStarterServiceV1和MyStarterServiceV2是根据条件注入的具体实现类。

也就是客户端在配置=v1会使用MyStarterServiceV1,

配置=v2会使用MyStarterServiceV2


4,新建文件,指定Starter的自动装配类。

在resources下新建META-INF文件夹,新建文件。内容为:

#指定autoconfigure加载的自动装配类是哪个=

5,打包测试

mavencleaninstall

先install到本地仓库测试

新创建一个普通的springboot工程:mystarter-use依赖在增加配置

=22==v2

写一个测试类

@Component@Slf4jpublicclassMyStarterUseTestimplementsCommandLineRunner{@AutowiredprivateAbstractMyServicemyService;@Overridepublicvoidrun(Stringargs)throwsException{(());}}

通过修改的值可以观察到,实例化了不同的service


最新文章