学习目标:
- 掌握 Spring Boot 基础
学习内容:
Spring Boot:
- Parent
- Starter
- 引导类
- 内置Tomcat
学习时间:
- 2022.07.02
学习产出:
- Parent
在Spring Boot的官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent作为parent标签。这个parent标签有一个最常用的功能,就是定义子标签的依赖版本号。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version> <!-- 这里版本不同,对应的properties 也会有所不同 -->
<relativePath/> <!-- lookup parent from repository -->
</parent>
spring-boot-starter-parent 内部继承了spring-boot-dependencies, spring-boot-dependencies这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号。
pring-boot-starter-parent 内部
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.7.1</version>
</parent>
<properties>
<activemq.version>5.16.5</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.97</appengine-sdk.version>
<artemis.version>2.19.1</artemis.version>
<aspectj.version>1.9.7</aspectj.version>
<assertj.version>3.22.0</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<!-- ....... -->
</properties>
- Starter
通过官方文档里面的介绍,Starter其实就是Spring针对不用的开发场景,给我们提供的“套餐”。这就类似于,我们去KFC吃饭,可能有些同学们是会选择自己喜欢吃的食物去下单,但是,有些同学们对饮食并没有那么挑剔,只是满足我爱吃且能吃饱即可。所以,就像我一样,直接就去点物美价廉的香辣鸡腿堡套餐了。而这个香辣鸡腿堡套餐,就是我们今天要介绍的Starter了
也就是通常说的依赖传递
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 引导类
是SpringBoot的启动入口,启动后会初始化Spring容器,扫描引导类所在包加载bean。
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringbootApplication.class, args);
FistController bean = run.getBean(FistController.class);
bean.getByid();
}
}
- 内置Tomcat
内置的Tomcat,是将tomcat当做一个java对象去运行,tomcat的引用包含在spring-boot-starter-web中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.7.1</version>
<scope>compile</scope>
</dependency>
总结
- starter
- SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少一览配置的目的
- parent
- 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的。
- spring-boot-starter-parent各版本存在着诸多坐标版本不同
- 引导类
- 是SpringBoot工程的执行入口,运行main方法启动项目。
- SpringBoot工程运行后会初始化Spring容器,扫描引导类所在包加载bean。
- 内置的Tomcat
- 内置Tomcat,是将tomcat当做一个java对象去运行,tomcat的引用包含在spring-boot-starter-web中