自定义spring-boot-starter

一,简介

命名规则:

Spring 官方 Starter通常命名为 spring-boot-starter-{name} 如 spring-boot-starter-web 。

Spring官方建议非官方Starter命名应遵循 {name}-spring-boot-starter 的格式。

步骤:

1.创建读取配置文件信息的properties类(非必要)

2.自定义AutoConfiguration配置类,可以通过@Condition*系列注解实现动态判断是否导入

3,在 src/main/resources 下创建目录 META-INF ,在在 META-INF下创建文件 spring.factories。

内容为 

org.springframework.boot.autoconfigure.EnableAutoConfiguration= 需要装配的类的全限定名称,如 com.bxy.datasource.config.DataSourceConfig,其中DataSourceConfig为自定义的配置类。

4,使用maven 打包插件,将定义好的starter打包,其他项目就可以引用了。

二,实战

1,创建springboot项目

2,引pom依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

3,定义实体类用来映射配置文件信息

4,定义配置类

5,创建spring.factories

 6,其他项目引用

自己的打包信息

其他项目引用:

三,补充

以上就可以满足自定义starter,但测试时可能有一个重要的问题,那就是项目扫描不到自定义的配置类,这是因为@SpringBootApplication扫描包的范围是启动类所在同级包和子包,但是不包括第三方的jar包.如果需要扫描maven依赖添加的Jar,我们就要单独使用@ComponentScan注解扫描包.

解决方式:

法一:自定义配置类时,包结构和当前项目的包结构保存一直,当前项目就会通过@SpringBootApplication扫描到自定义的配置信息

法二:使用 @ComponentScan 注解,如

@ComponentScan(basePackages = {"com.bxy.datasource"})

四,总结

上面只是介绍了starter的步骤,没有具体示例代码,如果想具体时间,可以参考 : 自定义starter,实现通过注解动态切换数据源。

https://mp.csdn.net/mp_blog/creation/editor/131355828

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

隔山看水

你的鼓励与打赏是我创作的最大动

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

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

打赏作者

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

抵扣说明:

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

余额充值