作为了一个小菜鸡,真诚发问,sdk和starter有啥区别哇,欢迎大家评论区告知!非常感谢
springboot
作为java开发者不得不提的一个框架,其中也是有许多配置可以减轻开发者的工作量。
简化了Bean对象注入到IoC容器中的流程(自动装配),配置文件的统一管理。
比如自动装配,引入一个starter就可以实现了,大大减少了代码量,使得coder专注于业务代码。
自动装配原理
首先你需要去熟悉SPI机制
具体的逻辑就不展示了,这里只展现关键代码。如果需要详细启动逻辑代码的同学评论走一波,需求多的话就更新。
springboot自动装配的流程
就是随着A项目的启动,会扫描到@SpringBootApplication
注解
该注解里面存在一个@EnableAutoConfiguration
注解
在EnableAutoConfiguration
注解里面又存在一个Import
注解
执行selectImports
方法,selectImports
返回的是配置类的全路径名
配置类从何而来,是基于SPI机制,去classpath下的META-INF
目录下找所有的spring.factories
文件,然后将所有的spring.factories文件进行解析
自动将我所需要的Bean对象注入到IoC容器里面去,@Configuration
和@Bean
,自动体现在我没有对任何类加前面的两个注解
手写一个starter
1.我们先新建一个springboot项目,这里的application.properties和Application启动类都是不需要的