本篇为整套教程第一部分,完整讲解 Web 基础概念、Spring 全家桶介绍、SpringBoot 快速入门完整实操,配套创建项目步骤、核心注解、底层起步依赖原理、脚手架报错解决方案,适合零基础后端预习、课堂复习、初学搭建第一个 Web 接口。中篇讲解完整 HTTP 请求 & 响应协议,下篇完成用户列表综合案例、三层架构、IOC 与 DI 依赖解耦。
一、Web 开发基础概念铺垫
1.1 资源分类(静态 / 动态)
- 静态资源服务器存储固定不变文件,不会随用户请求变化,负责页面展示:HTML、CSS、JS、图片、视频。
- 动态资源服务端代码根据请求实时生成数据,每次访问内容可变化,负责业务逻辑:Servlet、SpringBoot Controller。
1.2 两种主流软件架构
- B/S 浏览器 / 服务器架构客户端仅需要浏览器,程序、数据全部部署在服务端;维护简单,页面交互体验一般(网页、管理后台)。
- C/S 客户端 / 服务器架构需要单独下载安装客户端软件;客户端可做复杂交互,但开发、升级维护成本高(桌面游戏、电脑客户端)。
1.3 Web 访问核心流程
浏览器 → HTTP 协议 → Tomcat 服务器 → Spring 框架处理业务逻辑,最终返回数据给页面。
二、Spring 全家桶整体介绍
官网:Spring | HomeSpring 是一套完整 Java 后端开发生态,拆分多个独立子项目,各司其职:
| 组件 | 核心作用 |
|---|---|
| Spring Framework | Spring 底层核心,提供 IOC、事务、基础 Web、数据访问能力 |
| Spring Boot | 简化 Spring 繁琐 XML 配置,内置服务器,快速搭建独立应用 |
| Spring Data | 统一各类数据库操作代码规范 |
| Spring Cloud | 微服务分布式开发全套工具集 |
| Spring Security | 项目登录、权限、安全认证框架 |
Spring vs SpringBoot 对比
原生 Spring:配置文件繁多、搭建项目流程复杂、入门门槛高。SpringBoot:自动配置、起步依赖、内置 Tomcat,极大简化开发,官方推荐现代 Java Web 开发方案。
三、SpringBoot Web 快速入门实操
3.1 需求目标
搭建 Web 项目,浏览器访问http://localhost:8080/hello?name=Heima,页面返回字符串Hello Heima ~。
3.2 完整开发步骤
- 打开 IDEA,新建 Spring Initializr 工程
- Server 默认地址:start.spring.io
- 填写 Group(组织)、Artifact(项目名)、JDK 版本
- 依赖勾选:Spring Web(Web 开发核心起步依赖)
- 编写 Controller 控制类,添加核心注解
- 运行项目启动类 main 方法,浏览器访问接口测试
Controller 完整代码示例
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 标识当前类为请求处理类
@RequestMapping("/hello") // 统一接口路径前缀
public class HelloController {
public String hello(String name){
System.out.println("HelloController ... hello : " + name);
return "Hello " + name + " ~ ";
}
}
3.3 核心注解说明
@RestController组合注解 =@Controller + @ResponseBody;标识当前类是接口控制类,方法返回值直接写入 HTTP 响应,自动转为 JSON。@RequestMapping("路径")绑定接口访问地址,写在类上代表统一路径前缀。
3.4 项目底层原理剖析
- 起步依赖 starter-web pom 中引入
spring-boot-starter-web,自动整合全套 web 所需依赖:内嵌 Tomcat 容器、SpringMVC、JSON 解析工具等,无需手动导入 Tomcat、SpringMVC 各类 jar 包。配套测试依赖:spring-boot-starter-test用于单元测试。 - 内置 Tomcat项目打包 Jar 包,直接运行 main 方法即可启动 web 服务,无需额外安装、配置 Tomcat 服务器,默认监听 8080 端口。
- 自动扫描启动类自动扫描当前包及其子包下所有带注解的 Controller、Service,自动处理浏览器请求。
3.5 脚手架连接超时解决方案
报错现象
IDEA 新建项目提示 Initialization failed,无法连接 start.spring.io。
解决方式
修改 Initializr Server 地址为阿里云镜像:https://start.aliyun.com,国内网络访问稳定。
四、上篇全文总结
- Web 分为静态资源(页面文件)、动态资源(后端逻辑代码),区分 BS/CS 两种架构;
- Spring 生态包含 Framework、Boot、Cloud、Security 等组件,SpringBoot 简化配置、快速开发;
- Web 入门三步:创建项目勾选 Web 依赖 → 编写 @RestController 接口类 → 运行启动类访问;
- @RestController 负责接口响应,项目内置 Tomcat,starter-web 自动整合全套 web 依赖;
- 官网脚手架超时切换阿里云镜像地址即可解决。
上篇拓展练习
- 新建 SpringBoot Web 项目,实现 /hi 接口,传入参数输出自定义文字;
- 查看 pom.xml,观察 spring-boot-starter-web 自动引入的内嵌 Tomcat 依赖;
- 测试切换阿里云脚手架地址,重新创建新项目。
上篇入门面试考点
- Spring 和 SpringBoot 的区别;
- @RestController 注解作用;
- spring-boot-starter-web 起步依赖包含哪些内容;
- IDEA 创建 Spring 项目连接超时解决方案;
- 什么是静态资源、什么是动态资源。
中篇预告:完整 HTTP 协议详解,包含请求结构、响应结构、HttpServletRequest/HttpServletResponse、ResponseEntity 使用。