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
源码学习:
世界上所有的不公平都是由于当事人能力不足造成的.