
🎬 那我掉的头发算什么 :个人主页
🔥 个人专栏 : 《javaSE》《数据结构》《数据库》《javaEE》
⛺️待到苦尽甘来日

引言
今天我想带着大家一起,从零开始搭建一个完整的 SpringBoot 项目,这也是我自己后端开发路上的第一步。从环境准备到写出第一个接口,再到扩展功能,我们一步一步来。
文章目录
什么是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)(Embedded Server)
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文件
java
<?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/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hbu</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<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这部分,我们主要学习的是做一个能和用户交互的网页,下面我将展示一个能在浏览器上访问的代码。
java
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服务器,无需配置即可直接运行
Tocmat默认端⼝号是8080, 所以我们程序访问时的端口号也是8080

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