springboot实现自定义start

建项目:

比较简单,我写过很多建项目的博客了…
在这里插入图片描述

自定义autoconfigure-servicetest

我打算先实现简单的类的自动注入,然后自己实现一个简单的springboot-redis-start
首先再建个模块,就叫autoconfigure-servicetest好了,同理建一个autoconfigure-redis,web模块里面引入两个新建的模块
然后加上依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>

然后在servicetest里面建一个需要注入到其他工程里面的类,就叫做serviceTest好了,里面就一个方法调用,whoani我是谁?
在这里插入图片描述
然后建个自动装配类:[
@Configuration注解表名这是一个配置类,
@ConditionalOnClass表示为只有当ServiceTest存在时才会实例化
@ConditionalOnMissingBean表示容器中没有这个类才会返回这个类,如果有就不加载这个类了
然后在resource下面建META-INF文件夹,然后建个spring.factories文件,然后文件中写上

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ql.servicetest.ServiceTestAutoConfigure

然后简单的自动装配就完成了,这时候肯定一头雾水,为啥要这么做,我们等下分析,先测试一波:写个简单的测试:
在这里插入图片描述
在这里插入图片描述
成功了,

为什么要建META-INF,然后文件spring.factories写的啥

先看下dubbo-spring-boot-starter
在这里插入图片描述
再看看spring-boot-autoconfigure,就是官方的start
在这里插入图片描述
然后看看spring.factories文件,其实都是跟我们写的一样的配置文件
在这里插入图片描述
都是指定加载的配置文件而已.
图片来自参考:https://www.jianshu.com/p/9e31b4ef2b20
在这里插入图片描述

自定义springboot-redis-start

自定义实现springboot-redis

源码学习:

https://github.com/stackXu/study-authconfigure

posted @ 2019-06-26 21:41  你就像甜甜的益达  阅读(267)  评论(0编辑  收藏  举报