当我们创建一个springboot项目之后,pom.xml
会自动带着下面的parent的内容
这个里面引用了dependencies
在dependencies里面有定义了一堆的版本号的配置信息
我们可以看到mysql不用输入版本号,默认的mysql是8.0.31的版本
我们可以手动修改版本号,在下面就自动更新成新的mysql版本号了
<properties>
<mysql.version>5.1.17</mysql.version>
</properties>
当我们在项目里面引入了spring-boot-starter-web
那么会自动把tomcat也引入过来,我们点进去
可以看到有引入spring-boot-starter-tomcat,我们在点进去
可以看到tomcat自带的版本信息,这就给我们自动配置进去了
在spring-boot-starter-web里面还引入了spring mvc的包
我们在启动类输入下面的代码
public static void main(String[] args) {
//返回我们ioc容器
ConfigurableApplicationContext run = SpringApplication.run(ClientApplication.class, args);
//查看容器里面的组件
String[] beanDefinitionNames = run.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println(beanDefinitionName);
}
}
可以看到有springmvc的dispatcherServlet,characterEncodingFilter
视图解析器
multipartResolver文件上传解析器
springboot帮我们配置了web开发的常见场景
Application启动类所在包和他下面的所有子包里面的组件都会被默认扫描进来
一个@SpringBootApplication注解对应下面三个注解
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
像server.port这个配置的端口 就是对应源码的ServerProperties类
然后找到AbstractConfigurableWebServerFactory类
可以看到默认的8080端口在这里
当我们在Yml文件设置了8888端口号的时候
就会进入ServerProperties这个类给端口赋值为8888,如果不设置,那么这里就会是null,
会自动找AbstractConfigurableWebServerFactory类的8080端口
springboot的所有自动配置都在spring-boot-autoconfigure包里面