基础项目解析
- parent
-
- starter
- 引导类
- 内嵌tomcat
-
SpringBoot优点
-
起步依赖 (简化依赖程序)
自动配置 (简化工程相关配置)
辅助功能(内置服务器, …)
parent
- spring-boot-dependencies-2.6.1.pom中定义了很多个版本和坐标关系
- 阿里云创建版本直接引用了spring-boot-dependencies(继承只能用一次)
- 避免多个依赖使用相同的技术时出现版本冲突
org.springframework.boot
spring-boot-starter-parent
2.6.1
可以只写GA不用写V
starter
- 一个starter提供了一个技术所需的各种依赖,达到减少依赖配置的目的
- 简化配置的目的
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
引导类
- 引导类是Boot工程的执行入口,运行main方法就可以启动项目
- SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载Bean
@SpringBootApplication
public class Springboot0101QuickstartApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
BookController bean = run.getBean(BookController.class);
System.out.println("book--==>"+ bean);
User bean1 = run.getBean(User.class);
System.out.println("User--==>"+ bean1);
}
}
内嵌tomcat
- SpringBoot内置一个tomcat服务器
- 可以从starter-web中排除换成其他的服务器,例如下面案例中的jetty
-
常见的内置服务器
-
apache出品,粉丝多,
应用面广,负载了若干较重的组件
jetty
更轻量级,负载性能远不及tomcat
undertow 负载性能勉强跑赢tomcat
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
org.springframework.boot
spring-boot-starter-jetty