零基础也能60分钟上手Spring Boot?全栈工程师手把手带你入门

威武_先知
2025-12-23 15:36
阅读 1702

大家好,我是掘金上常写教程的全栈工程师。最近有不少刚学完 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 插件

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 一样简单。

  1. 访问 https://start.spring.io/
  2. 填写如下配置:
配置项
Project Maven Project
Language Java
Spring Boot 3.2.x (最新稳定版)
Group com.example
Artifact demo
Packaging Jar
Java Version 17
  1. Dependencies 搜索框中添加:

    • Spring Web(提供 HTTP 接口能力)
  2. 点击 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:启动并测试

  1. 在 IDEA 中点击绿色三角运行 DemoApplication
  2. 打开浏览器访问:
    • 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 的结构、事务管理、安全性等优势巨大。工具没有好坏,只有适不适合场景。


下一步学习建议

  1. 深入 Controller:学习 @PostMapping、参数接收(@RequestParam, @RequestBody
  2. 连接数据库:添加 Spring Data JPA + MySQL,实现 CRUD
  3. 了解自动配置原理:为什么加个依赖就能用?看看 @EnableAutoConfiguration
  4. 部署上线:用 java -jar demo.jar 部署到云服务器
  5. 对比学习:用 Spring Boot 重写你之前的 Python Web 项目

最后的话

我当初从 Python 转 Java 时,也觉得 Spring Boot “太复杂”。但一旦理解了它的约定优于配置(Convention over Configuration)思想,就会爱上这种“看似繁琐实则高效”的工程化思维。

记住:60 分钟只是起点。真正的成长,在于你愿意动手改代码、查文档、解决问题。

现在,去运行你的第一个 Hello, Spring Boot! 吧!遇到问题?欢迎在评论区留言,我会一一解答。

🌟 学习资源推荐:

评论 0

最热最新
暂无评论
威武_先知Lv.1
0
影响力
0
文章
0
粉丝