当前位置: 首页 > 科技观察

乍一看,自己写SpringBoot-Starter

时间:2023-03-22 15:47:33 科技观察

,自己开发starter的好处就是集成了很多依赖,提供一站式依赖。Starter相当于一个模块,可以集成模块需要的依赖,并根据环境(条件)自动配置模块中的bean。用户只需要依赖相应功能的Starter,SpringBoot无需过多配置和依赖,即可自动扫描加载相应模块。将官方的springstarter命令命名为spring-boot-starter-xxx,所以我们开发的项目不要用spring-boot启动。推荐写成:xxx公司组织-spring-boot-starter-yyy模块开发步骤1.新建一个Maven项目,在项目的POM文件中定义使用的依赖;2.新建一个配置类,写入配置项和默认配置值,指明配置项前缀;3、新建一个自动组装类,使用@Configuration和@Bean进行自动组装;4、新建spring.factories文件,指定Starter的自动组装类;具体代码1、新建一个springboot工程,在pom文件中添加如下依赖:org.springframework.bootspring-boot-configuration-processortrue主要作用是编译时在META-INF下生成spring-configuration-metadata.json文件,主要供IDE使用。即可以ctrl+click进入application.properties文件中配置属性所在的类2.配置类的关键是指定配置项的前缀。这些配置项也可以设置默认值。3.自动装配类自动装配类是整个starter的逻辑核心。根据配置项的值,自动注入合适的bean。在这个项目中,有一个抽象的AbstractMyService,它代表了客户端将要使用的服务bean。MyStarterServiceV1和MyStarterServiceV2是根据条件注入的具体实现类。即客户端在配置spring101.version=v1时会使用MyStarterServiceV1,配置spring101.version=v2时会使用MyStarterServiceV24,新建一个spring.factories文件,指定Starter的自动组装类。在resources下新建一个META-INF文件夹,新建一个spring.factories文件。内容是:#指定autoconfigure加载哪个自动装配类。使用依赖在application.properties中添加配置spring101.age=22spring101.name=uncleYspring101.version=v2写一个测试类}}通过修改spring101.version的值,可以观察到实例化了不同的服务