什么是 SpringBoot
SpringBoot 是 Spring 生态中最受欢迎的框架之一,它的核心目标就是让 Spring 应用的开发、部署和运行变得更简单。
四大核心特性
- 自动配置(Auto-Configuration) 这是 SpringBoot 最核心的功能。它会根据你引入的依赖,自动配置 Spring 应用的底层组件。
- Starter 依赖(Starter Dependencies) Starter 是 SpringBoot 提供的'场景化依赖包',它把某个开发场景下需要的所有依赖打包成一个依赖,你只需引入一个 starter,就能自动获得该场景的所有组件。
- 嵌入式服务器(Embedded Server) SpringBoot 内置了 Tomcat、Jetty、Undertow 等 Web 服务器,你只需运行启动类的 main 方法,就能直接启动项目,无需部署到外部服务器。
- 约定大于配置(Convention Over Configuration)
SpringBoot 定义了一套标准的项目结构和默认配置,减少了手动配置的工作量:
- 启动类默认放在根包(如 com.bite.spring.demo),自动扫描子包中的 Bean。
- 配置文件默认放在 src/main/resources/application.properties/application.yml。
- 静态资源默认放在 src/main/resources/static,模板文件放在 src/main/resources/templates。
总之,使用了 SpringBoot 创建项目跟直接用 Maven 相比,就是简单!简单!简单!
创建项目
其实创建一个 Spring 项目就是创建一个 Maven 项目,只不过我们使用了 SpringBoot 插件之后就不需要每次重新自己去配置 pom 文件的依赖了,它提供了一系列「starter 依赖」可以自动引入该场景下的所有依赖。

新建项目时需要使用 SpringBoot 的插件,专业版内置了这个插件无需下载。如果使用的是社区版可以去下载一个叫做 Spring Initializr 的插件。还有就是类型选择 Maven。剩下的团队名称和项目名称可以自己取一个。

在依赖这里我们可以选择 Spring Web,这是我们写网络接口的基础。我们选择了这个依赖,相当于 SpringBoot 代替我们使用 Maven 配置了一个个的依赖。
pom 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.1</version>
<relativePath/>
</parent>
<groupId>com.hbu</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这是我刚刚打开自动显示的 pom 文件,里面把所有的依赖服务器等都配置好了,我们不需要再自己动手配置 pom 文件了。
项目结构

- src/main/java: Java 源代码
- src/main/resources: 为静态资源或配置文件:
/static: 静态资源文件夹,比如 js, css, html 等静态文件,不需要服务器数据进行绑定的页面/templates: 模版资源文件夹,主要存放动态模板文件,比如 JSP, Freemarker, Thymeleaf 等需要服务器动态渲染数据的文件
- src/test/java: 测试代码源代码
- target: 编译后的文件路径
- pom.xml: maven 配置文件
项目启动
运行项目

我们只需要点开根目录下创建好的启动类运行其中的 main 方法就好了。

在这个类中有一个@SpringBootApplication 注解,这个注解是将这个类标识成启动类的主要原因。一个项目只能有一个启动类。

出现这样的界面就代表项目成功的启动了。
输出 Hello World
在 javaEE 这部分,我们主要学习的是做一个能和用户交互的网页,下面我将展示一个能在浏览器上访问的代码。
package com.bite.spring.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/hello")
@RestController
public class HelloController {
@RequestMapping("m1")
public String hello() {
return "hello,spring boot";
}
}
写完这个类后,要在启动类那里重新启动一下项目!(每一次修改代码后,只有重新启动了项目,被修改的代码才会生效!)

大家应该没有忘记 127.0.0.1 是回环 ip 吧😁
Web 服务器
咱们知道,浏览器和服务器两端数据交互使用的是 http 协议。 Web 服务器就是对 HTTP 协议进行封装,我们不需要直接对协议进行操作(比如咱们之前写过 Socket 编程),让 Web 开发更加便捷。所以 Web 服务器也被称为 WWW 服务器,能提供网上信息浏览服务。 常见的 Web 服务器有:Apache, Nginx, Tomcat, Jboss。 SpringBoot 内置了 Tomcat 服务器,无需配置即可直接运行。 Tomcat 默认端口号是 8080,所以我们程序访问时的端口号也是 8080

请求与响应
我们这样一个简单的交互过程其实就用到了前面 javaEE 初阶部分网络的很多知识,比如请求过程就是计算机通过 IP 地址定位目标计算机,也就是本主机,然后通过 8080 端口定位到进程,再通过/hello/m1 定位到资源。响应过程就是服务器接收到信息后找到需要的资源并发送。
在学习网络部分时我们谈到过网页的状态码,当时只有一部分状态码我们平时可以遇到,比如 404, 200, 403 等,还是有很多状态码没见过,而且很难演示。现在我们就有机会了,因为我们日常访问的网站都是开发好测试好的网站,一般不会出错。但是我们自己写的小网页就可以自行控制,输出自己想要的结果了。


