1. 起步依赖
Spring Boot 提供了一系列以 spring-boot-starter-
为前缀的起步依赖,通过这些依赖,可以快速引入 Web、JPA、Security、Redis 等功能。例如:
- spring-boot-starter-web:包含 Web 开发常见的依赖,如 Spring MVC 和 Tomcat。
- spring-boot-starter-test:包含常见的测试依赖,如 JUnit 和 Mockito。
spring-boot-starter-web内部把关于Web开发所有的依赖都已经导入并且指定了版本,只需引入 spring-boot-starter-web 依赖就可以实现Web开发的需要的功能。
Spring的官方提供了很多现成的starter(起步依赖),我们在开发相关应用时,只需要引入对应的 starter即可。
官方地址:https://docs.spring.io/spring-boot/docs/2.7.2/reference/htmlsingle/#using.build-systems.starters
每一个起步依赖,都用于开发一个特定的功能。
举例:当我们开发中需要使用redis数据库时,只需要在SpringBoot项目中,引入:spring boot-starter-redis ,即可导入redis开发所需要的依赖。
2. 父工程管理
Spring Boot 项目中的依赖版本由父工程统一管理,开发者不需要在 pom.xml
文件中手动指定每个依赖的版本号。Spring Boot 的父工程会自动为常见的库指定合适的版本,简化了版本管理。
3. 内嵌 Tomcat
Spring Boot 通过内嵌的 Tomcat 服务器支持 Web 应用的运行。在开发过程中,无需将项目部署到外部 Tomcat 服务器,只需运行项目的 main()
方法,Tomcat 即会自动启动并监听请求。这使得开发和调试过程更加便捷。
问题:为什么书写的SpringBoot程序,并没有把程序部署到Tomcat的webapps目录下,也可以运行呢?
原因呢,是因为在我们的SpringBoot中,引入了web运行环境(也就是引入spring-boot-starter web起步依赖),其内部已经集成了内置的Tomcat服务器。
我们可以通过IDEA开发工具右侧的maven面板中,就可以看到当前工程引入的依赖。其中已经将 Tomcat的相关依赖传递下来了,也就是说在SpringBoot中可以直接使用Tomcat服务器。
当我们运行SpringBoot的引导类时(运行main方法),就会看到命令行输出的日志,其中占用8080端 口的就是Tomcat。