跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

SpringBoot 从零搭建第一个项目

SpringBoot 简化了 Spring 应用的开发、部署和运行,具备自动配置、Starter 依赖、嵌入式服务器及约定大于配置四大核心特性。通过 IDE 插件创建 Maven 项目,利用 Starter 自动引入依赖。项目遵循标准结构,启动类含@SpringBootApplication 注解,内置 Tomcat 默认端口 8080。编写 Controller 实现 Hello World 接口,演示 HTTP 请求与响应流程,无需外部服务器部署即可直接运行。

t ag发布于 2026/2/4更新于 2026/7/204K 浏览
SpringBoot 从零搭建第一个项目

什么是 SpringBoot

SpringBoot 是 Spring 生态中最受欢迎的框架之一,它的核心目标就是让 Spring 应用的开发、部署和运行变得更简单。

四大核心特性

  1. 自动配置(Auto-Configuration) 这是 SpringBoot 最核心的功能。它会根据你引入的依赖,自动配置 Spring 应用的底层组件。
  2. Starter 依赖(Starter Dependencies) Starter 是 SpringBoot 提供的'场景化依赖包',它把某个开发场景下需要的所有依赖打包成一个依赖,你只需引入一个 starter,就能自动获得该场景的所有组件。
  3. 嵌入式服务器(Embedded Server) SpringBoot 内置了 Tomcat、Jetty、Undertow 等 Web 服务器,你只需运行启动类的 main 方法,就能直接启动项目,无需部署到外部服务器。
  4. 约定大于配置(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 等,还是有很多状态码没见过,而且很难演示。现在我们就有机会了,因为我们日常访问的网站都是开发好测试好的网站,一般不会出错。但是我们自己写的小网页就可以自行控制,输出自己想要的结果了。

目录

  1. 什么是 SpringBoot
  2. 创建项目
  3. pom 文件
  4. 项目结构
  5. 项目启动
  6. 运行项目
  7. 输出 Hello World
  8. Web 服务器
  9. 请求与响应
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 链表面试基础:快慢指针与哨兵节点的实战应用
  • Self-supervised Learning of Person-specific Facial Dynamics for APR 论文阅读
  • Linux Shell 命令与语法底层执行逻辑
  • GitHub Copilot Plan 模式:核心优势与使用场景解析
  • C++ 设计模式详解:创建、结构及行为型核心实现
  • 基于 AI 代码助手的开发板垃圾图片识别系统实践
  • Java Lambda 与匿名内部类为何禁止修改外部变量?final 机制详解
  • SpringBoot 配置文件核心用法:Properties 与 YAML
  • C++ 自定义日志库设计与实现
  • Python 开发 OpenAI API 应用指南:文本、代码与图像生成
  • 无人机智能 AI 巡检平台:全域感知与自动化作业方案
  • SmolRTSP:嵌入式系统高效 RTSP 流媒体服务实现
  • Git LFS 跨平台安装指南:Linux、macOS 与 Windows
  • ESP32 智能家居固件环境配置与烧录指南
  • Java 线程安全:概念、原因与解决方案
  • 基于 OpenClaw 与 Claude 的自动化写作工作流实践
  • Page-Agent:一行 JS 代码实现大模型前端 DOM 自动化
  • AI 技能(Skills):面向任务自动化的模块化执行范式
  • Python 基础语法详解:变量、类型、运算符与输入输出
  • 模拟算法专题:替换所有问号、提莫攻击、Z 字形变换等 5 题解析

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online