初识SpringBoot
浅谈自动装配原理
-
pom.xml
- spring-boot-depedencies:其核心的依赖都在父工程中
- 在引入一些springboot的依赖的时候可以不需要指定版本,避免了版本依赖冲突的问题,相信很多人在写依赖的时候没少因为版本依赖冲突而一直报ClassNotFound这个错误吧
-
启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 比如我这里就是可以让springboot帮我们导入web环境下的所有依赖
- springboot会将我们所有可能遇到的功能场景都变成一个个的启动器
- 主程序
/**
* @SpringBootApplication:标注是一个springboot的应用:启动类下的所有资源被导入
*/
@SpringBootApplication
public class HelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloworldApplication.class, args);
}
}
- 这里注解部分都很需要去深入研究源码,我这里把自己得出的一些结论说一下:
- springboot所有的自动配置都是在启动的时候才会被扫描和加载的,你详看注解@ComponentScan可以看出来,都是加载的spring.factories这个类,因为spring.factories这个类有很多自动加载类的部分,但是在未导入对应的start前不会生效,换句话说我们只需要配置相应的启动器就可以了。
- 具体的spring.factories在哪,可以看下maven导入的包的截图: