Springboot 自定义starter

1.找到springboot starter 自动注入的原理:

追踪@SpringBootApplication 注解

可以看到他会这个注解会导入AutoConfigurationImportSelector类型的类,他会找到selectImports方法,然后导入相关的类。

可以看到第三方包,导入进来的时候,他会在这个文件下找哪些包导入。

所以我们创建第三方包的时候,要配置这个文件。

下面开始依托springboot 手写一个第三方包

结构目录如下

package com.example;

import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConditionalOnClass(MyService.class) // 确保MyService类在类路径中
public class MyAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean // 如果没有其他同名Bean,则创建一个
    public MyService myService() {
        return new MyService();
    }
}
package com.example;

public class MyService {
    public String sayHello() {
        return "Hello from MyService!";
    }
}

 src\main\resources\META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports

com.example.MyAutoConfiguration

然后maven install 安装到本地maven仓库,另外一个项目就能导入坐标进行使用啦。

另一个项目引用

自动注入成功,并成功输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值