Spring Boot Starter探秘:全面了解 spring-boot-starter-web

前文《一分钟上手:如何创建你的第一个 SpringBoot Starter》中,我们介绍了如何创建你的第一个 Spring Boot Starter以及SpringBoot框架中常用的Starter,本文就来介绍下Spring Boot框架中最重要的starter之一,spring-boot-starter-web。

spring-boot-starter-web介绍

spring-boot-starter-web 是 Spring Boot 框架里用于构建 Web 应用程序的核心启动器,它极大地简化了 Spring Web 应用的开发流程,通过自动配置和依赖管理,可以快速构建 RESTful API 服务和传统的基于 MVC 的 Web 应用,后者现在基本很少用了,Vue的出现,现在基本都使用前后端分离的开发模式。

依赖的包

spring-boot-starter-web 通过一系列依赖包整合了构建 Web 应用所需的各种组件。下面将详细介绍这些核心依赖。

1. spring-boot-starter

这是所有 Spring Boot Starter 的基础包,提供了 Spring Boot 应用的核心功能,包括自动配置、日志管理等。它确保了所有 Starter 之间的兼容性和一致性,是构建任何 Spring Boot 应用的基础。

2. spring-boot-starter-tomcat

spring-boot-starter-web 默认集成了 Tomcat 作为内嵌服务器。这意味着你无需额外配置,应用启动时会自动启动一个 Tomcat 服务器,监听指定端口,提供 Web 服务。当然,如果需要,也可以切换到 Jetty 或 Undertow,只需排除 Tomcat 依赖并添加相应的 Starter 即可。

3. hibernate-validator

数据校验是Web 应用开发中的重要环节。hibernate-validator 支持基于注解的字段校验,如 @NotNull、@Size 等,确保传入的数据符合预期格式和约束条件。现在基本都使用spring-boot-starter-validation包了,具体使用见Spring Boot 注解探秘:@Validated 开启数据验证之旅(上)Spring Boot 注解探秘:@Validated 开启数据验证之旅(下)

4. jackson-databind

在构建 RESTful API 时,JSON 是最常用的数据交换格式。jackson-databind 提供了高效的 JSON 序列化和反序列化功能,使得 Java 对象与 JSON 数据之间的转换变得极为简便。

老外还是喜欢用jackson,国内的互联网公司大家更喜欢用阿里巴巴提供的fastjson。

5. spring-web

spring-web 是 Spring Framework 中用于构建 Web 应用的核心模块,提供了基础的 Web 功能,如 HTTP 请求处理、REST 支持等。它是 spring-webmvc 的基础,为后者提供底层支持。

6. spring-webmvc

spring-webmvc 是 Spring Framework 的 Web MVC 框架,基于模型-视图-控制器(MVC)设计模式。它负责将 HTTP 请求映射到相应的控制器方法,处理视图解析,以及管理会话和上下文等,是构建复杂 Web 应用的利器。

这6个jar包后续会针对性的来剖析其对应的源码和设计思想

在实际项目中的应用

为了更好地理解 spring-boot-starter-web 的应用,下面通过一个示例来演示其使用。

1. 创建 Spring Boot 项目

使用 Spring Initializr 创建一个新的 Spring Boot 项目,选择 spring-boot-starter-web 作为依赖。

2. 定义实体类

@Data
public class User 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding侠客

一起充电,一起成长。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值