SpringBoot--->>>高级特性-->>自定义 starter

3、自定义 starter使用第三方写好的starter时,在引入后观察依赖结构,会有一个依赖负责写 AutoConfiguration ,一个负责声明当前 Starter 需要的其他依赖。这个依赖并没有内容,自动配置类在另一个依赖里面所以自定义 starter 也一样,同样创建一个 maven 工程负责写自动配置和功能,一个负责写场景要的依赖。总有一个文件叫 spring.factories 在这里面记载了程序启动时需要加载的一些配置,之前在初学SpringBoot的自动配置原理 时知道,程序
摘要由CSDN通过智能技术生成

3、自定义 starter

使用第三方写好的starter时,在引入后观察依赖结构,会有一个依赖负责写 AutoConfiguration ,一个负责声明当前 Starter 需要的其他依赖。

请添加图片描述

这个依赖并没有内容,自动配置类在另一个依赖里面

请添加图片描述

所以自定义 starter 也一样,同样创建一个 maven 工程负责写自动配置和功能,一个负责写场景要的依赖。

总有一个文件叫 spring.factories 在这里面记载了程序启动时需要加载的一些配置,之前在初学SpringBoot的自动配置原理 时知道,程序启动时会自动加载读取这个 spring.factories 配置文中的配置,加载相关的配置类组件。 所以自定义Starter也需要一个 spring.factories 文件

场景步骤:

1、首先创建一个空项目,然后添加两个maven模块,一个叫 self-starter-spring-boot 【第三方的starter都是 场景名-starter-spring-boot ,spring提供的starter是spring-boot-场景名-starter】 做为场景启动器,一个叫 selt-spring-boot-myselfServiceAutoConfigure 作为专门的配置类,在这里面写starter的配置。

可能出现的错误

如果创建项目用的是spring模板,进去就把主配置类、配置文件、自带的测试类删掉。

因为在打包的时候SoringBoot检测到这些文件后会认为你这个程序是一个SpringBoot应用然后打包前进行测试可不可用,不删完就会报错说少东西。

而且就算不删打包,打包后的依赖下载到本地仓库后被其他项目引用,也无法应用这个starter,因为autoConfigure这个包打包的时候他编写的程序在打包时被放在了 BOOT-INF 目录里面,引用starter的程序在使用依赖里面的类时无法引用,所以最好用maven创建项目自己引入做配置文件需要的依赖,要么用spring模板就删干净。

创建出来的项目的结构

请添加图片描述

2、在starter项目里面引入autoconfigue项目的依赖,他只单纯作为一个starter场景启动器。

这个依赖坐标直接去 autoconfigure 的pom文件里面复制,可以先修改的好看一些。

<dependencies>
    <dependency>
        <groupId>com.xl</groupId>
        <artifactId>self-spring-boot-autoconfigue</artifactId>
        <version>1.0.0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值