Spring Boot入门:60分钟从零写出你的第一个后端服务
大家好,我是你们的老朋友,一个在大厂干了三年后端开发、业余时间在B站分享技术的UP主。今天这篇教程,是专门写给完全零基础的新手朋友的。
为什么我要写这篇文章?因为我记得自己刚入行那会儿,面对Spring Boot一脸懵:什么是“自动配置”?为什么加个注解就能启动服务器?连IDE都不会装……后来我带实习生时,发现很多人卡在同样的地方。所以今天,我想用最直白的语言、最清晰的步骤,带你60分钟内跑通第一个Spring Boot程序。这不是速成神话,而是经过我反复打磨的“最小可行路径”。
更重要的是——安全意识要贯穿始终。哪怕是最简单的Demo,我们也要养成良好的习惯,比如不硬编码密码、不暴露敏感信息。代码人生,从第一行就该有安全意识!
一、Spring Boot到底是什么?能干啥?
简单说:Spring Boot 是一个帮你快速搭建 Java 后端应用的工具箱。
想象你要盖房子:
- 普通Java开发 = 你得自己买水泥、砖头、钢筋,再找工人,再设计图纸……
- Spring Boot = 直接给你一套精装样板房,水电全通,你只要决定“客厅放沙发还是茶几”就行。
它最大的特点就是 “约定优于配置” —— 很多事情它都帮你默认做好了(比如内置Tomcat服务器、自动连接数据库等),你只需要专注业务逻辑。
💡 我当初学的时候,最震撼的就是:写一个类,加两个注解,运行一下,浏览器就能访问了!这比传统Java Web开发快太多了。
二、环境准备:5分钟搭好开发环境
别怕!我们只装3样东西:
| 软件 | 作用 | 安装建议 |
|---|---|---|
| JDK 17(或以上) | Java运行环境 | 推荐 Oracle JDK 或 OpenJDK |
| IntelliJ IDEA Community | 免费强大的Java IDE | 官网直接下载,社区版完全够用 |
| Maven(可选) | 项目依赖管理工具 | IDEA已内置,无需单独安装 |
步骤详解:
安装JDK
- 下载JDK 17(别用太老的版本,Spring Boot 3.x要求JDK 17+)
- 安装后打开终端,输入
java -version,看到类似以下输出即成功:openjdk version "17.0.10" 2024-01-16
安装IDEA
- 访问 https://www.jetbrains.com/idea/download/
- 选择 Community(社区版),免费且功能足够
- 安装时一路默认即可
验证环境
- 打开IDEA → Create New Project → 选择 Spring Initializr
- 如果能看到项目创建界面,说明环境OK!
⚠️ 安全提示:不要从非官方渠道下载JDK或IDE,避免植入恶意代码!
三、核心概念:用大白话讲清楚
新手最容易被术语吓到。我们拆解三个最关键的:
1. 什么是“启动类”?
就是你程序的入口。Spring Boot规定:带 @SpringBootApplication 注解的类就是启动类。
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
📌 小贴士:这个类的位置很重要!默认它会扫描同包及子包下的所有组件。所以建议把它放在根包下,比如
com.example.demo。
2. 什么是“Controller”?
它是处理用户请求的“接待员”。比如用户访问 /hello,Controller就负责返回“Hello World”。
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}
@RestController= 告诉Spring:“这个类专门处理网络请求”@GetMapping("/hello")= 当用户用GET方法访问/hello时,执行这个方法
3. 什么是“自动配置”?
Spring Boot会根据你引入的依赖,自动帮你配置好相关功能。
比如你加了数据库依赖,它就自动尝试连接数据库;你加了Web依赖,它就自动启动内嵌Tomcat服务器。
🔒 安全意识提醒:自动配置虽方便,但不要盲目添加依赖!每个依赖都可能带来安全风险。只加你真正需要的。
四、实战:手把手写一个“用户问候”服务
现在,我们用30分钟完成一个真实小项目:用户访问 /greet?name=张三,返回 “你好,张三!”。
第1步:创建项目
- 打开IDEA → New Project → Spring Initializr
- 填写:
- Project SDK: 选你装的JDK 17
- Language: Java
- Type: Maven
- Group:
com.example - Artifact:
demo
- 在 Dependencies 中勾选:
- Spring Web(这是做Web服务必须的!)
- 点击Next → Finish
✅ 项目结构应如下:
demo/ ├── src/main/java/com/example/demo/ │ └── DemoApplication.java ← 启动类 └── pom.xml ← 依赖配置文件
第2步:写Controller
在 com.example.demo 包下新建类 GreetController.java:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetController {
@GetMapping("/greet")
public String greet(@RequestParam(defaultValue = "陌生人") String name) {
// 防XSS攻击:简单过滤特殊字符(实际项目需更严格)
String safeName = name.replaceAll("[<>'\"]", "");
return "你好," + safeName + "!";
}
}
🔐 安全重点:这里做了最基础的输入过滤,防止用户传
<script>等恶意代码。虽然简单,但体现了安全意识!
第3步:运行并测试
- 点击
DemoApplication.java左边的绿色三角 ▶️ 运行 - 看到控制台输出
Tomcat started on port(s): 8080表示启动成功 - 打开浏览器,访问:
http://localhost:8080/greet→ 返回 “你好,陌生人!”http://localhost:8080/greet?name=小明→ 返回 “你好,小明!”
🎉 恭喜!你已经写出了第一个安全的Spring Boot接口!
五、新手常见问题 & 解决方案
❓ Q1:启动报错 “Port 8080 was already in use”?
原因:8080端口被其他程序占用了(比如另一个Spring Boot项目)。
解决:
- 方法1:关掉占用端口的程序
- 方法2:改端口。在
src/main/resources/application.properties中加一行:server.port=8081
❓ Q2:为什么我的Controller没生效?
检查点:
- 类是否加了
@RestController? - 方法是否加了
@GetMapping/@PostMapping? - 启动类是否在Controller的父包?(这是90%新手的问题!)
✅ 正确结构:
com.example.demo ← 启动类在这里 └── controller ← Controller在这里(子包) └── GreetController.java
❓ Q3:如何查看请求日志?
Spring Boot默认会打印请求日志。运行后你会看到类似:
2024-06-01T10:00:00.000Z INFO 12345 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
这就是正常现象,说明请求被处理了。
六、面试题挑战:这些你都会了吗?
学完本教程,你可以自信回答以下初级面试题:
| 面试题 | 考察点 | 简洁回答 |
|---|---|---|
| Spring Boot 和 Spring 有什么区别? | 核心理解 | Spring Boot 是 Spring 的脚手架,简化配置,内嵌服务器,开箱即用 |
@RestController 和 @Controller 有什么不同? |
注解区别 | @RestController = @Controller + @ResponseBody,直接返回数据而非页面 |
| 如何修改Spring Boot默认端口? | 配置能力 | 在 application.properties 中设置 server.port=新端口 |
| 为什么启动类要放在根包? | 组件扫描 | Spring Boot 默认只扫描启动类所在包及其子包下的组件 |
💬 我在B站的“面试题挑战”系列里会深入讲解这些题。关注我,下次更新见!
七、下一步学习建议:别踩这些坑!
先别急着学数据库
很多人一上来就想连MySQL,结果环境配半天,挫败感拉满。建议先把HTTP请求、参数接收、返回JSON玩熟。善用官方文档
Spring Boot文档写得极好:https://spring.io/projects/spring-boot
别信那些“3天精通”的野路子教程!安全意识要前置
- 永远不要在代码里写密码(用配置文件 + 环境变量)
- 用户输入一定要校验和过滤
- 敏感接口加权限控制(后面学Spring Security)
动手!动手!动手!
看十遍不如写一遍。试着把/greet改成返回JSON格式:{ "message": "你好,小明!", "timestamp": "2024-06-01T10:00:00" }(提示:返回一个Map或自定义对象即可)
写在最后:你的代码人生,从此开始
60分钟很短,但足够让你推开后端世界的大门。我当初就是从这样一个小小的 /hello 开始,一步步走到今天。
记住:每个大神都曾是个菜鸟,区别只在于有没有迈出第一步。
如果你跟着教程跑通了代码,不妨在评论区留个言:“我的第一个Spring Boot服务启动成功!” —— 这会是你代码人生中值得纪念的一刻。
下期预告:《Spring Boot + MySQL:安全地存储用户数据》。我会重点讲解如何防止SQL注入,这是每个后端开发者必须掌握的安全技能。
我是你们的技术UP主,我们代码江湖再见!

评论 0