SpringBoot Web 开发教程(上篇)

本篇为整套教程第一部分,完整讲解 Web 基础概念、Spring 全家桶介绍、SpringBoot 快速入门完整实操,配套创建项目步骤、核心注解、底层起步依赖原理、脚手架报错解决方案,适合零基础后端预习、课堂复习、初学搭建第一个 Web 接口。中篇讲解完整 HTTP 请求 & 响应协议,下篇完成用户列表综合案例、三层架构、IOC 与 DI 依赖解耦。

一、Web 开发基础概念铺垫

1.1 资源分类(静态 / 动态)

  1. 静态资源服务器存储固定不变文件,不会随用户请求变化,负责页面展示:HTML、CSS、JS、图片、视频。
  2. 动态资源服务端代码根据请求实时生成数据,每次访问内容可变化,负责业务逻辑:Servlet、SpringBoot Controller。

1.2 两种主流软件架构

  1. B/S 浏览器 / 服务器架构客户端仅需要浏览器,程序、数据全部部署在服务端;维护简单,页面交互体验一般(网页、管理后台)。
  2. 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 完整开发步骤

  1. 打开 IDEA,新建 Spring Initializr 工程
    • Server 默认地址:start.spring.io
    • 填写 Group(组织)、Artifact(项目名)、JDK 版本
    • 依赖勾选:Spring Web(Web 开发核心起步依赖)
  2. 编写 Controller 控制类,添加核心注解
  3. 运行项目启动类 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 核心注解说明

  1. @RestController组合注解 = @Controller + @ResponseBody;标识当前类是接口控制类,方法返回值直接写入 HTTP 响应,自动转为 JSON。
  2. @RequestMapping("路径")绑定接口访问地址,写在类上代表统一路径前缀。

3.4 项目底层原理剖析

  1. 起步依赖 starter-web pom 中引入spring-boot-starter-web,自动整合全套 web 所需依赖:内嵌 Tomcat 容器、SpringMVC、JSON 解析工具等,无需手动导入 Tomcat、SpringMVC 各类 jar 包。配套测试依赖:spring-boot-starter-test用于单元测试。
  2. 内置 Tomcat项目打包 Jar 包,直接运行 main 方法即可启动 web 服务,无需额外安装、配置 Tomcat 服务器,默认监听 8080 端口。
  3. 自动扫描启动类自动扫描当前包及其子包下所有带注解的 Controller、Service,自动处理浏览器请求。

3.5 脚手架连接超时解决方案

报错现象

IDEA 新建项目提示 Initialization failed,无法连接 start.spring.io

解决方式

修改 Initializr Server 地址为阿里云镜像:https://start.aliyun.com,国内网络访问稳定。

四、上篇全文总结

  1. Web 分为静态资源(页面文件)、动态资源(后端逻辑代码),区分 BS/CS 两种架构;
  2. Spring 生态包含 Framework、Boot、Cloud、Security 等组件,SpringBoot 简化配置、快速开发;
  3. Web 入门三步:创建项目勾选 Web 依赖 → 编写 @RestController 接口类 → 运行启动类访问;
  4. @RestController 负责接口响应,项目内置 Tomcat,starter-web 自动整合全套 web 依赖;
  5. 官网脚手架超时切换阿里云镜像地址即可解决。

上篇拓展练习

  1. 新建 SpringBoot Web 项目,实现 /hi 接口,传入参数输出自定义文字;
  2. 查看 pom.xml,观察 spring-boot-starter-web 自动引入的内嵌 Tomcat 依赖;
  3. 测试切换阿里云脚手架地址,重新创建新项目。

上篇入门面试考点

  1. Spring 和 SpringBoot 的区别;
  2. @RestController 注解作用;
  3. spring-boot-starter-web 起步依赖包含哪些内容;
  4. IDEA 创建 Spring 项目连接超时解决方案;
  5. 什么是静态资源、什么是动态资源。

中篇预告:完整 HTTP 协议详解,包含请求结构、响应结构、HttpServletRequest/HttpServletResponse、ResponseEntity 使用。