SpringBoot是为了简化Spring的开发的而生的,那么这些简化体现在什么地方呢?
1.不需要XML配置
2.内嵌了Servlet容器(tomcat,Jetty等)
3.尽可能自动配置Spring容器.
4.提供自动配置的“starter”项目对象模型(POMS),简化了Maven配置;
设计策略:
1、开箱即用
2、约定大约配置
既然这么好用,那么的原理是什么呢,就是自动装配:
二、自动装配原理

其他都是注解之外,会涉及到两个类:
1.AutoConfigurationImportSelector

2.AutoConfigurationPackages.Registrar.class
AutoConfigurationImportSelector指向了spring.factories,是在Spring-boot-autoconfigure的jar包中,

在这里面有很多自动配置的类:

但并不是这些所有的自动配置类都是生效的,那什么时候生效呢,有这样的有一个注解,@ConditionalOnClass,判断后面括号里面的类是否存在,存在才会生效。也就是说在pom文件中,加了相关的Starter就会生效。

Springboot-starter-parent

在父工程里面已经有了相关的依赖,以及版本,只有没有生效而已,这也就是我们只需要引入启动器,不需要引入版本,Springboot做了版本管理。
