SpringBoot - Starter原理

Spring和SpringBoot发开的时候有一个很大的区别就是:我们在用SpringBoot的时候只需要引入对应的spring-boot-starter-xxx(第三方命名规则:xxx-spring-boot-starter)就能使用对应的组件做开发了。

Starter

一般没有业务逻辑代码,被第三方引入的入口,起到一个包装、统筹的作用。还有引入一个与之对应的Autoconfigure工程

Autoconfigure

这里会包含三类文件:

  • xxxAutoConfiguration(用@Configuration标注,告诉SpringBoot这是一个配置类)
  • 真正的业务逻辑组件和配置文件类(用@EnableConfigurationProperties注解引入
    的xxxProperties,然后被业务逻辑组件引用获取属性值)
  •  META-INFO/spring.factroies文件

关系图例

mybatis的启动器事例

mybatis的starter和autoconfigure中的各个模块

MybatisAutoConfiguration(被@Configuration注解标注)中通过@Bean把我们开发中需要用到的SqlSessionFactory实例对象注入到IOC中,SqlSessionFactory的属性从MybatisProperties对象中获取的

mybatis的starter通过pom把对应的mybatis的autoconfigure依赖进来了

使用mybatis

接下来使用mybatis的话就很简单了,直接在pom.xml中引入mybatis的启动器就可以使用了

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

自定义启动器

如果你有自定Starter的需求的话,只需要实现上图深蓝色部分就可以了,接下来的事情就交给SpringBoot了

spi(听到spi后有没有想到api?)相关解答,这里附上知乎大神的解答:https://zhuanlan.zhihu.com/p/28909673

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值