spring-boot-starter 与 spring-boot-starter-web 的差异

一、spring-boot-starter 与 spring-boot-starter-web 的差异

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
依赖 作用
spring-boot-starter Spring Boot 核心基础能力
spring-boot-starter-web 构建 Web / REST 服务能力(包含 Tomcat + MVC)

二、 spring-boot-starter 是最基础启动器,包含:

主要包括
spring-core
spring-context
spring-beans
spring-aop
spring-boot-autoconfigure
logging(默认 logback)

作用
✔ 支持 IOC
✔ 支持依赖注入
✔ 支持自动配置
✔ 支持日志系统

不包含
❌ 不包含 Web
❌ 不包含 Tomcat
❌ 不包含 MVC

适用场景
工具类项目
后台任务调度
CLI程序
Kafka / MQ 消费者
非 HTTP 服务

三、spring-boot-starter-web 是 Web 场景启动器

它包含:
1️⃣ spring-boot-starter
2️⃣ spring-web
3️⃣ spring-webmvc
4️⃣ Jackson(JSON)
5️⃣ 嵌入式 Tomcat

依赖结构(简化版):

spring-boot-starter-web
 ├── spring-boot-starter
 ├── spring-web
 ├── spring-webmvc
 ├── jackson
 └── tomcat

四、功能差异对比

功能 starter starter-web
IOC
自动配置
日志
REST接口
@RestController
嵌入式Tomcat
JSON序列化

总结

  • 如果是web项目,就只需要引入 starter-web 而不需要引入 starter。
    因为 starter-web 包含了 starter
  • 如果只是做后台任务/消息系统,只需要引入 starter,而不需要web
本文为原创内容,作者:闲鹤,原文链接:https://blog.uwenya.cc/1641.html,转载请注明出处。

发表评论