Spring Boot零基础60分钟实战:文科生也能写出后端接口

DataWizard
2025-12-26 09:50
阅读 728

大家好,我是一个从中文系转码成功的“野生程序员”。当初学Spring Boot的时候,光是“依赖注入”“自动配置”这些词就让我头晕目眩。但今天我想告诉你:哪怕你连Java都没写过,只要跟着这篇教程动手敲代码,60分钟内你就能跑起一个真正的后端服务!

这篇文章不讲大道理,只用最直白的语言+可运行的案例,带你快速入门Spring Boot。文末还附赠几个高频面试题挑战,助你迈出求职第一步。


为什么选Spring Boot?

简单说:它让Java后端开发变得超级简单

传统Java Web开发要配几十个XML文件、搭Tomcat服务器、手动管理依赖……而Spring Boot就像“智能厨房”——你只需告诉它“我要做番茄炒蛋”,它自动准备好锅、油、火候,你专注放料就行。

我当初学的时候,光是配置Maven就折腾了三天。现在用Spring Boot,5分钟建好项目!


第一步:搭建开发环境(10分钟)

别怕!你只需要装三样东西:

工具 作用 安装建议
JDK 17 Java运行环境 推荐使用 Eclipse Temurin
IntelliJ IDEA Community 免费IDE(代码编辑器) 社区版完全够用
Maven 依赖管理工具 IDEA已内置,无需单独安装

避坑指南:不要用JDK 8!Spring Boot 3.x要求J JDK 17+。我第一次就栽在这儿,项目死活跑不起来。

验证安装

打开终端,输入:

java -version

看到类似 openjdk version "17.0.9" 就说明OK!


第二步:创建你的第一个Spring Boot项目(15分钟)

方法一:用官网生成器(推荐新手)

  1. 打开 start.spring.io
  2. 填写:
    • Project: Maven
    • Language: Java
    • Spring Boot: 3.2.x(最新稳定版)
    • Group: com.example(随便填)
    • Artifact: demo
  3. Dependencies 搜索框输入 Spring Web 并添加
  4. 点击 Generate 下载zip包

方法二:用IDEA创建(更高效)

  1. 打开IDEA → New Project
  2. 选择 Spring Initializr
  3. 同样添加 Spring Web 依赖

解压后用IDEA打开项目,你会看到这样的结构:

demo/
├── src/
│   └── main/
│       ├── java/com/example/demo/
│       │   └── DemoApplication.java  ← 主程序入口
│       └── resources/
│           └── application.properties ← 配置文件
└── pom.xml  ← 依赖声明文件

第三步:理解核心概念(通俗版)

1. 什么是“启动类”?

DemoApplication.java 是整个应用的开关:

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
  • @SpringBootApplication = 自动配置 + 组件扫描 + Spring Boot特性
  • 运行 main 方法,服务就启动了!

2. 什么是Controller?

Controller就是“接待员”,负责接收用户请求并返回结果。

新建文件 src/main/java/com/example/demo/HelloController.java

@RestController // 表示这个类专门返回数据(不是网页)
public class HelloController {
    
    @GetMapping("/hello") // 当用户访问 /hello 时触发
    public String sayHello() {
        return "你好,Spring Boot!";
    }
}

💡 关键点:

  • @RestController = 返回纯文本/JSON(不是HTML页面)
  • @GetMapping = 处理GET请求(比如浏览器直接输入网址)

第四步:运行你的第一个接口(10分钟)

  1. 在IDEA中右键点击 DemoApplication.javaRun 'DemoApplication'
  2. 看到控制台输出:
    Tomcat started on port(s): 8080
    Started DemoApplication in 2.1 seconds
    
  3. 打开浏览器,访问:http://localhost:8080/hello

✅ 你会看到页面显示:你好,Spring Boot!

🎉 恭喜!你刚刚完成了:

  • 创建Web服务
  • 定义API接口
  • 返回响应数据
    这就是后端开发的核心流程!

第五步:升级你的接口(返回JSON数据)

真实项目很少返回纯文本,通常用JSON格式。修改 HelloController

@RestController
public class HelloController {
    
    // 新增一个返回对象的方法
    @GetMapping("/user")
    public User getUser() {
        User user = new User();
        user.setName("小明");
        user.setAge(25);
        return user;
    }
}

再创建 User.java

public class User {
    private String name;
    private int age;
    
    // 必须有getter/setter(Spring需要)
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

重启应用,访问 http://localhost:8080/user,你会看到:

{"name":"小明","age":25}

🔍 为什么不用写JSON转换代码?
因为Spring Boot自动引入了Jackson库,只要返回Java对象,它会自动转成JSON!


面试题挑战:你能答对几道?

学完基础,试试这些真实面试题(答案在文末):

  1. Q:Spring Boot默认启动端口是多少?如何修改?
  2. Q:@RestController 和 @Controller 有什么区别?
  3. Q:为什么User类必须有getter方法?

我当初面试就被问到第2题,答错了...现在你知道了吧?


常见问题 & 避坑指南

❌ 问题1:启动报错 Address already in use

原因:8080端口被其他程序占用(比如另一个Spring Boot项目)
解决:在 application.properties 添加:

server.port=8081

❌ 问题2:访问接口返回404

检查清单

  • Controller类是否加了 @RestController
  • 方法是否加了 @GetMapping
  • 包路径是否在启动类的子包下?(Spring Boot默认只扫描启动类所在包及其子包)

❌ 问题3:中文乱码

application.properties 添加:

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true

下一步学习建议

你已经掌握了Spring Boot的“Hello World”级能力!接下来可以:

  1. 学数据库操作:添加 Spring Data JPA + H2内存数据库,实现CRUD
  2. 学接口文档:集成Swagger,自动生成API文档
  3. 学项目结构:了解三层架构(Controller-Service-Repository)
  4. 做个小项目:比如“待办事项列表”(Todo List)

我的第一个完整项目就是Todo List,虽然简陋,但它让我拿到了第一份实习offer!


面试题答案

  1. 默认端口8080。修改方式:

    • 配置文件:application.properties 中加 server.port=9090
    • 启动参数:java -jar app.jar --server.port=9090
  2. 区别

    • @Controller:返回视图名称(用于返回HTML页面)
    • @RestController = @Controller + @ResponseBody,直接返回数据(JSON/文本)
  3. 因为Jackson序列化需要通过getter获取字段值。如果没有getter,JSON中该字段会为空或缺失。


最后送你一句话:我从背《滕王阁序》到写RESTful API,只差了一个“开始动手”的决心。Spring Boot没那么可怕,现在就去敲那几行代码吧! 60分钟后,你就是能跑通后端服务的人了。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝