parent:
starter:
引导类:
内嵌Tomcat:
先讲一下parent:
1:定义一系列的常用坐标版本
2:定义一系列的常用坐标组合
3:直接使用组合
比如你想到入api在pom.xml里如下:
![](https://i-blog.csdnimg.cn/blog_migrate/85cca1ca1f32c08a61773264eef63a3c.png)
这个功能就是写parent带来的效果是不是非常方便 配置如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
这个配置是如何运作的呢我们看看源码就知道:Ctrl+点击spring-boot-starter-parent进入
![](https://i-blog.csdnimg.cn/blog_migrate/154205dd34c0fef35f7a1207f19ea678.png)
在进入spring-boot-dependencies 你会看到如下:
![](https://i-blog.csdnimg.cn/blog_migrate/57089d6f773389badff00cd02f7b276b.png)
是不是非常多它都已经帮你配置好了。当然下面这个也是一样的同一个功能:
![](https://i-blog.csdnimg.cn/blog_migrate/29e235873d9fb226f147b4997b3a005e.png)
接下来我们讲一下starter:
我们先进入starter下看看可以到如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d9a380727b7b25c9681a5c2e488a5795.png)
你可以看到引用非常多的依赖spring-web,spring-webmvc,包括Tomcat都在其中。
![](https://i-blog.csdnimg.cn/blog_migrate/09954a3b71be9295174491c7b654099a.png)
我们进入Tomcat看看可以看到他默认的Tomcat版本是9.0.60 这就是为什么我们连Tomcat都不用自己配置了。
![](https://i-blog.csdnimg.cn/blog_migrate/ec26e98d5794e5454f6bf179b826777b.png)
引导类:
其实就是启动类。我们来讲解一下它的作用。
![](https://i-blog.csdnimg.cn/blog_migrate/4321b0f020d38e995cb5471e6799edc9.png)
首先:
这就是一个主启动类:
@SpringbootApplication //标注着这是一个springboot应用
@SpringbootApplication会默认扫描当前这个类的所在包及其子包
点进去看你会发现下面继承了1:
@SpringBootConfiguration 和 2:
@EnableAutoConfiguration
1:
@SpringBootConfiguration 这个就是Springboot中的配置类下面继承了
@Configuration 配置类 接着继承了
@Component 说明这也是一个spring的组件。
2:
@EnableAutoConfiguration这是一个自动配置。下面继承了
@AutoConfigurationPackage 自动配置包。下面还继承了
@Import
({
Registrar
.
class
}) 导入选择器注册包。
我们可以得出springboot所有的自动配置都在启动的时候通过扫描并且加载。
接着我们来我们可以在启动类进行测试你就会知道这里的bean就是从spring容器中拿出来的:
以上都说明了springboot帮我们做了非常多的事情,是不是比springMVC还方便了。
![](https://i-blog.csdnimg.cn/blog_migrate/f97557d47a35205fb54677f3ca1d7817.png)
其实
SpringApplication
.
run
(
Springboot0101QuickstartApplication
.
class
就是启动了一个spring容器。
内嵌Tomcat:
其实前面我们也提到了,springboot内嵌了Tomcat的服务器,这里就比较难理解为什么是程序里内嵌了服务器呢,
我们最开始不是把程序扔到服务器里吗。为什么反过来了,其实这样想是错的。
Tomcat本身就是拿java语言写的java语言运行靠对象,其实就是把Tomcat容器的执行过程抽取出来变成一个对象,
然后把对象交给spring容器去管理。
后面还会不断更新希望对大家有帮助。