开篇:为什么 SpringBoot 是 “Java 开发救星”?

你有没有听过前辈吐槽 “Spring 配置能写吐”?比如搭个简单的 Web 项目:

  1. 要手动找 10 + 个依赖(Spring、SpringMVC、Tomcat、Jackson…),版本还不能错;
  2. 要写web.xml、spring.xml、spring-mvc.xml,光配置文件就占半屏代码;
  3. 最后还要打 War 包,部署到 Tomcat,少一步就报错。

SpringBoot 就是来解决这些麻烦的—— 它像 “Spring 的成品套餐”,把常用依赖、配置、服务器全打包好,你只需 “拆箱即用”。比如搭个 Web 项目,只需 3 步:加依赖、写代码、跑程序,新手 10 分钟就能搞定。

一、SpringBoot 核心优势:3 点解决 Spring 的 “痛点”

先明确 Spring 的 3 个核心痛点,再看 SpringBoot 怎么 “对症下药”:

Spring 的痛点 SpringBoot 的解决方案 通俗理解
🔧依赖配置繁琐 起步依赖(Starter) 不用一个个找 Jar 包,比如spring-boot-starter-web包含 Web 开发所有依赖
⚙️配置文件臃肿 自动配置(AutoConfiguration) 不用写spring.xml,SpringBoot 启动时自动初始化 Bean 到容器
🚀部署麻烦 (需外部 Tomcat) 内置服务器(Tomcat/Jetty

二、实战:10 分钟搭建 “Hello World” Web 项目

目标:浏览器访问http://localhost:8080/hello,返回 “hello world ~”。
推荐 4 种搭建方法,小白按自己的环境选(IDEA 联网版最常用)。

方法 1:IDEA 联网版(推荐,新手首选)

步骤 1:新建 Spring Initializr 项目

  1. 打开 IDEA→New Project→选择Spring InitializrDefault(默认地址,需联网)→Next
  2. 填写项目信息(按自己需求填,新手建议默认):
    • Group:组织名(比如com.heima);
    • Artifact:项目名(比如springboot-hello);
    • Java Version:选 8(SpringBoot 3.0 + 需 JDK17,新手选 8 更稳);
  3. 勾选 “Web 依赖”:左侧选Web→勾选Spring WebNext
  4. 选择项目保存路径→Finish,IDEA 会自动下载依赖,等待加载完成。

步骤 2:写核心代码(Controller)
com.heima.springboothello包下新建controller包,再建HelloController类:

// 包路径:com.heima.springboothello.controller(必须在引导类所在包的子包下)
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

// @RestController:标记这是一个Web控制器,返回字符串/JSON
@RestController
public class HelloController {

    // @GetMapping("/hello"):接收浏览器的GET请求,路径是/hello
    @GetMapping("/hello")
    public String sayHello() {
        // 返回字符串给浏览器
        return "hello world ~";
    }
}

步骤 3:运行项目,测试效果

  1. 找到项目自动生成的 “引导类”(带@SpringBootApplication注解,类名一般是SpringbootHelloApplication);
  2. 点击类左侧的 “绿色三角” 运行,看到Tomcat started on port(s): 8080说明启动成功;
  3. 打开浏览器,输入http://localhost:8080/hello,页面显示 “hello world ~”—— 成功!

方法 2:官网创建版(IDEA 无法联网时用)

  1. 打开 SpringBoot 官网:https://start.spring.io/(需联网);
  2. 填写项目信息(同方法 1),勾选Spring Web依赖;
  3. 点击Generate下载项目压缩包;
  4. 解压后,用 IDEA 打开(File→Open→选择解压后的文件夹);
  5. 后续步骤同方法 1(写 Controller→运行)。

方法 3:阿里云版(外网无法访问 Spring 官网时用)

  1. IDEA 新建Spring InitializrCustom→输入阿里云地址:https://start.aliyun.com/Next
  2. 填写项目信息,勾选Spring Web(注意:阿里云的依赖版本可能较低,可后续手动改);
  3. 后续步骤同方法 1。
    **注意:**如果需要高版本 SpringBoot,打开pom.xml,修改spring-boot-starter-parent的版本(比如2.7.15)。

方法 4:手工制作版(完全无法联网时用)

适合没有网络,手动搭建 Maven 项目,能帮你理解 SpringBoot 的底层结构。
步骤 1:创建普通 Maven 项目
IDEA→New ProjectMaven→不勾选模板→Next→填写项目信息→Finish

步骤 2:改 pom.xml(加父工程和依赖)

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 1. 继承SpringBoot父工程(管理所有依赖版本,避免冲突) -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.15</version> <!-- 稳定版,支持JDK8 -->
    </parent>

    <groupId>com.heima</groupId>
    <artifactId>springboot-manual</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- 2. 加Web起步依赖(包含SpringMVC、Tomcat等) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

步骤 3:写引导类(项目入口)
在com.heima包下建SpringBootManualApplication

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// @SpringBootApplication:SpringBoot核心注解,包含3个功能:
// 1. 自动配置(AutoConfiguration) 2. 包扫描(扫描当前包及子包) 3. 允许注册Bean
@SpringBootApplication
public class SpringBootManualApplication {

    // 主方法:项目入口
    public static void main(String[] args) {
        // 启动SpringBoot项目,初始化Spring容器
        SpringApplication.run(SpringBootManualApplication.class, args);
    }
}

步骤 4:写 Controller(同方法 1)
后续步骤和方法 1 一样,运行引导类,浏览器访问/hello即可。

三、核心概念:Starter vs Parent 别再混淆!

新手最容易搞混 “起步依赖(Starter)” 和 “父工程(Parent)”,用表格一次性讲清:

概念 定义 核心作用 示例
Parent SpringBoot 的父工程(spring-boot-starter-parent) 管理所有依赖的版本号,避免版本冲突 你加spring-boot-starter-web时不用写版本,Parent 已指定
Starter 封装特定功能的依赖集合 简化依赖配置,一个 Starter 包含多个相关 Jar 包 spring-boot-starter-web包含 SpringMVC、Tomcat、Jackson 等

通俗比喻:

  • Parent 像 “超市采购员”,帮你选好所有商品(依赖)的固定版本,避免买到 “过期商品”(版本冲突);
  • Starter 像 “预制菜套餐”,比如 “Web 套餐” 里有米饭(SpringMVC)、菜(Tomcat)、汤(Jackson),不用你一个个挑。

四、引导类:SpringBoot 的 “启动开关”

引导类是 SpringBoot 项目的唯一入口,必须带@SpringBootApplication注解,核心作用:
1. 启动 Spring 容器:初始化 IOC 容器,把@Controller@Service等 Bean 装进去;
2. 自动扫描 Bean:默认扫描 “引导类所在的包及所有子包”(比如引导类在com.heima,com.heima.controller里的HelloController会被扫描,com.abc.controller则不会);
3. 自动配置:比如看到spring-boot-starter-web依赖,就自动配置 SpringMVC、Tomcat 等。

新手坑:如果 Controller 访问不到(404),先检查 Controller 的包是否在引导类的子包下!

五、辅助功能:内置服务器(不用装 Tomcat 了!)

1. 为什么能 “打 Jar 包直接跑”?

SpringBoot 把 Tomcat 服务器做成了 “Java 对象”,启动项目时会自动创建 Tomcat 对象,把项目部署到这个内置 Tomcat 里 —— 相当于 “项目自带服务器”,不用你手动装 Tomcat、部署 War 包。

2. 切换服务器(Tomcat→Jetty/Undertow)

默认是 Tomcat,如需切换(比如追求轻量选 Jetty),只需改pom.xml
示例:切换为 Jetty

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 1. 排除默认的Tomcat依赖 -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 2. 加Jetty依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>

3. 3 种内置服务器对比

服务器 特点 适用场景
Tomcat 默认,社区成熟,兼容性好,功能全 绝大多数 Web 项目(90% 的场景)
Jetty 轻量级,启动快,资源占用少 轻量应用、嵌入式设备
Undertow 性能强(并发高),基于 NIO 高并发场景(比如秒杀、直播)

六、小白实用技巧:2 个避坑 / 效率小知识

默认目录结构

src/
├── main/
│   ├── java/          # Java源代码
│   └── resources/     # 资源文件
│       ├── static/    # 静态资源(CSS/JS/图片)
│       ├── templates/ # 模板文件
│       └── application.properties # 配置文件
└── test/              # 测试代码

1. 静态资源放哪里?
HTML、CSS、JS 等前端文件,默认放在src/main/resources下的 3 个目录,SpringBoot 会自动识别:

  • static/:最常用(比如static/index.html,访问http://localhost:8080/index.html);
  • public/:和 static 类似;
  • resources/:一般放配置文件,也能放静态资源。

2. IDEA 隐藏无用文件(看着清爽)
新建项目后会有.mvnHELP.md等文件,不想看可以隐藏:

  1. IDEA→File→Settings→Editor→File Types;
  2. 找到Ignored Files and Folders,点击+;
  3. 输入要隐藏的文件 / 文件夹(支持通配符),比如.mvn、HELP.md;
  4. 点击OK,无用文件就看不到了。

七、总结:SpringBoot 入门核心要点

  1. 核心优势:起步依赖(简配置)、自动配置(少代码)、内置服务器(易部署);
  2. 项目结构:引导类(入口)→Controller(处理请求)→静态资源(前端文件);
  3. 关键概念:Parent 管版本,Starter 管功能;
  4. 新手避坑:Controller 包要在引导类子包下,访问不到先查包路径。

SpringBoot 入门的核心是 “简化”—— 它没新增复杂语法,只是帮你做了重复的配置工作。跟着上面的步骤搭好 “Hello World”,再慢慢探索更多功能(比如连接数据库、整合 Redis),你会发现 Java 开发原来可以这么轻松!

更多推荐