实现自定义springboot的starter

引言

学过springboot的肯定用过各种starter,通过这些starter我们可以节省很多没有必要的配置,让项目更简洁,配置起来也更简单。那么starter是怎么开发的呢?这里我通过一个简单的案例演示如何创建一个自己的starter。

初始化项目

先创建一个springboot项目,然后在pom.xml中引入如下依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>

其中关键的就是后两个依赖,spring-boot-autoconfigure 用于加载配置,spring-boot-configuration-processor 用于生成配置文件的自动提示。

然后需要删除pom.xml中的build部分(可能不完全一样,直接把build都删了就行):

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

然后可以把项目中没用的文件和文件夹删掉,如test、XXXApplication.java启动类等:

image-20221217183927759

项目初始化就算完成了;

具体stater内容编写

下面编写具体starter内容,这里我用一个简单的hello案例演示;

首先编写一个用来读取配置的配置类:

@Configuration
@ConfigurationProperties("yang.hello")
@Data
@ComponentScan
public class HelloStarterConfig {

    private String username;

    @Bean
    public String sayHello() {
        return username + "向你问好";
    }
}

代码不难,主要是了解这其中注解是什么意思;

@ConfigurationProperties注解作用是和配置文件(一般是 application.yml)进行绑定,将配置文件中对应的配置映射到对象的属性中。这里就是yang.hello.username就可以在application.yml文件中配置。

比如mysql数据库的配置类就是这样:

image-20221218085505726

配置类写好后,在resources下创建文件夹META_INF,并创建文件spring.factories:

image-20221218085942057

然后在该文件种编写如下配置:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.yang.hellostarter.HelloStarterConfig

这就把刚才写的配置类给关联了起来,就是类似一个启动类的作用;

这样一个简单的starter就完成了,然后通过maven插件install下来;

image-20221218090257387

然后这个starter就在你的本地maven仓库中了,可以调用测试一下:

引入依赖:

image-20221218090352538

image-20221218090417480

application.yml种可以配置:

image-20221218090501563

image-20221218090538459

然后在测试类测试一下:

image-20221218090650255

image-20221218090712121

运行结果:image-20221218090747036


这就是starter开发流程了,这只是一个简单案例,实际应用可以更灵活复杂点,但是大致步骤就是这样,也可以尝试把自己常用的一些工具类封装成自己的starter方便调用。

SpringBoot项目中,我们经常需要使用一些第三方的库来实现特定的功能,这就需要在项目中添加相关的依赖。通常情况下,我们会直接引入官方提供的SDK版本依赖。 但有时候,我们需要对这些SDK进行定制化,即自定义SDK版本依赖。这种需求通常有以下几个原因: 1. 兼容性问题:某个SDK版本可能与我们项目中其他依赖的版本不兼容,导致冲突或者出现bug。此时,我们可以选择自定义SDK版本依赖,以保证项目的稳定性和正常运行。 2. 特性需求:官方提供的SDK版本可能无法满足我们的具体业务需求,这时我们可以选择自己定制一个SDK版本,添加特定的功能或者修改某些功能,以满足项目的需求。 3. 性能优化:官方提供的SDK版本可能并不是最优的,可能存在一些性能瓶颈。我们可以通过自定义SDK版本来优化性能,提升项目的运行效率。 自定义SDK版本依赖的具体实现步骤如下: 1. 创建一个新的Maven项目,作为自定义SDK的基础项目。 2. 在该项目中添加我们需要自定义的功能,或者对官方提供的SDK进行修改。 3. 将该项目打包成jar文件,发布到仓库中(例如Maven仓库或者本地仓库)。 4. 在SpringBoot项目的pom.xml文件中,添加对自定义SDK版本的依赖,并指定版本号。 5. 在SpringBoot项目中使用自定义SDK版本,按照官方提供的文档或者API进行调用。 通过自定义SDK版本依赖,我们可以更加灵活地使用第三方库,以满足项目的需求。但需要注意的是,在自定义SDK版本时要保持与项目其他依赖的兼容性,并且及时更新和维护自定义SDK版本,以确保项目的可靠性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YXXYX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值