零基础也能60分钟上手Spring Boot?全栈工程师手把手带你入门
大家好,我是掘金上常写教程的全栈工程师。最近有不少刚学完 Python 的朋友私信问我:“Java 有没有像 Flask 那样简单上手的框架?”答案是:有!而且它叫 Spring Boot。
我当初学 Java Web 开发时,被繁杂的 XML 配置和 Maven 依赖折磨得够呛。但自从 Spring Boot 出现后,一切都变了——它就像 Java 版的 Flask:开箱即用、自动配置、快速启动。今天这篇教程,就专为 零基础初学者 打造,哪怕你只写过 Python 爬虫,也能在 60 分钟内跑起你的第一个 Spring Boot 应用!
💡 提示:本文虽面向零基础,但会适当对比 Python(如 Flask)帮助理解,即使没学过 Java 也不用慌!
为什么选择 Spring Boot?
- 简化开发:告别冗长的 XML 配置,一行注解搞定 Web 服务
- 内嵌服务器:无需单独安装 Tomcat,直接
java -jar启动 - 生态强大:数据库、安全、缓存等模块开箱即用
- 企业主流:国内大厂后端几乎清一色 Spring Boot
第一步:搭建开发环境
1. 安装 JDK(Java 开发工具包)
Spring Boot 基于 Java,所以首先要装 JDK。推荐使用 JDK 17(长期支持版本)。
- 官网下载:https://adoptium.net/
- 安装后验证:
如果输出版本号,说明安装成功。java -version javac -version
🚫 常见坑:不要装 JRE(只能运行不能编译),必须装 JDK!
2. 安装 IDE(开发工具)
推荐使用 IntelliJ IDEA Community(免费)或 VS Code + Java 插件。
- IDEA 下载:https://www.jetbrains.com/idea/download/
- VS Code 用户需安装插件:Extension Pack for Java
3. (可选)对比 Python 工具链
| 任务 | Python | Java (Spring Boot) |
|---|---|---|
| Web 框架 | Flask / Django | Spring Boot |
| 包管理 | pip + requirements.txt | Maven / Gradle |
| 虚拟环境 | venv / conda | 无(依赖由构建工具管理) |
第二步:创建你的第一个 Spring Boot 项目
方法一:使用 Spring Initializr(推荐)
这是官方提供的项目生成器,就像 create-react-app 一样简单。
- 访问 https://start.spring.io/
- 填写如下配置:
| 配置项 | 值 |
|---|---|
| Project | Maven Project |
| Language | Java |
| Spring Boot | 3.2.x (最新稳定版) |
| Group | com.example |
| Artifact | demo |
| Packaging | Jar |
| Java Version | 17 |
在 Dependencies 搜索框中添加:
Spring Web(提供 HTTP 接口能力)
点击 Generate 下载 ZIP,解压后用 IDEA 打开。
方法二:IDEA 内置创建(更快)
打开 IDEA → New Project → 选择 Spring Initializr → 填写同上信息 → 勾选 Spring Web → Finish。
第三步:理解核心概念(用最简单的话)
什么是“启动类”?
每个 Spring Boot 项目都有一个带 @SpringBootApplication 注解的主类,它是程序入口。
// DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
🔍 类比 Python:这就像
if __name__ == '__main__': app.run(),但功能更强大。
什么是 Controller?
Controller 负责处理 HTTP 请求,相当于 Flask 中的 @app.route。
// HelloController.java
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}
@RestController=@Controller+@ResponseBody(自动返回 JSON 或字符串)@GetMapping("/hello")表示监听 GET 请求/hello
第四步:实战!写一个“简易新闻爬虫 API”
既然你可能熟悉 Python 爬虫,那我们就用 Spring Boot 做一个 调用 Python 爬虫脚本并返回结果 的接口!
⚠️ 注意:这不是生产级方案,仅用于演示 Java 调用外部程序的能力。
步骤 1:准备一个 Python 爬虫脚本
在项目根目录新建 crawler.py:
# crawler.py
import sys
import json
# 模拟爬取数据(实际可用 requests + BeautifulSoup)
def fetch_news():
return [
{"title": "Spring Boot 入门教程发布", "url": "https://juejin.cn"},
{"title": "Java 与 Python 的奇妙结合", "url": "https://example.com"}
]
if __name__ == "__main__":
news = fetch_news()
print(json.dumps(news)) # 输出 JSON 字符串
步骤 2:在 Spring Boot 中调用它
修改 HelloController.java:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
@GetMapping("/news")
public String getNewsFromPython() throws Exception {
// 构造命令:调用系统 Python 执行 crawler.py
ProcessBuilder pb = new ProcessBuilder("python3", "crawler.py");
pb.directory(new java.io.File(System.getProperty("user.dir"))); // 设置工作目录为项目根目录
Process process = pb.start();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream())
);
StringBuilder output = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
output.append(line);
}
int exitCode = process.waitFor();
if (exitCode == 0) {
return output.toString(); // 返回 Python 输出的 JSON
} else {
throw new RuntimeException("爬虫脚本执行失败");
}
}
}
步骤 3:启动并测试
- 在 IDEA 中点击绿色三角运行
DemoApplication - 打开浏览器访问:
http://localhost:8080/hello→ 显示 "Hello, Spring Boot!"http://localhost:8080/news→ 显示 JSON 格式的新闻列表
✅ 成功!你用 Java 调用了 Python 爬虫,并通过 Web API 暴露数据!
新手常见问题解答
Q1:为什么我的端口不是 8080?
Spring Boot 默认端口是 8080。如需修改,在 src/main/resources/application.properties 中添加:
server.port=9090
Q2:Maven 依赖下载太慢怎么办?
在 pom.xml 同级目录创建 .mvn/maven.config 文件,内容:
-Dmaven.repo.remote=https://maven.aliyun.com/repository/public
或者配置阿里云镜像(网上教程很多)。
Q3:能直接写爬虫逻辑到 Java 里吗?
当然可以!推荐使用 Jsoup(HTML 解析库)或 HttpClient(发起 HTTP 请求)。例如:
<!-- 在 pom.xml 中添加依赖 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.16.1</version>
</dependency>
Q4:和 Flask 比,Spring Boot 是不是太重了?
对小型项目,Flask 更轻量;但对中大型应用,Spring Boot 的结构、事务管理、安全性等优势巨大。工具没有好坏,只有适不适合场景。
下一步学习建议
- 深入 Controller:学习
@PostMapping、参数接收(@RequestParam,@RequestBody) - 连接数据库:添加
Spring Data JPA+ MySQL,实现 CRUD - 了解自动配置原理:为什么加个依赖就能用?看看
@EnableAutoConfiguration - 部署上线:用
java -jar demo.jar部署到云服务器 - 对比学习:用 Spring Boot 重写你之前的 Python Web 项目
最后的话
我当初从 Python 转 Java 时,也觉得 Spring Boot “太复杂”。但一旦理解了它的约定优于配置(Convention over Configuration)思想,就会爱上这种“看似繁琐实则高效”的工程化思维。
记住:60 分钟只是起点。真正的成长,在于你愿意动手改代码、查文档、解决问题。
现在,去运行你的第一个 Hello, Spring Boot! 吧!遇到问题?欢迎在评论区留言,我会一一解答。
🌟 学习资源推荐:
- 官方文档:https://spring.io/projects/spring-boot
- 中文社区:https://springboot.io/
- 我的掘金主页:搜索“Spring Boot 入门系列”

评论 0