加班内卷的IT行业,我选择躺平:用SpringBoot写个文心一言小助手
大家好,我是你们的老朋友,一个在大厂干了三年、白天写代码晚上做UP主的普通程序员。最近几年,互联网行业的“内卷”和“加班文化”几乎成了默认设定——凌晨两点还在群里回消息,周末被临时叫去改bug,需求文档还没写完就催上线……说实话,我也曾深陷其中,焦虑到睡不着觉。
但后来我想通了:技术不是用来拼命的,而是用来解放自己的。
于是,我不再盲目加班,开始用自动化工具帮自己省时间。比如,写个小程序自动处理重复性任务;搭个本地服务,一键生成日报;甚至调用AI接口,让机器帮我写初稿。今天这篇教程,就是想带零基础的朋友,从最简单的环境搭建开始,亲手做一个能调用文心一言(百度推出的AI大模型)的SpringBoot小应用。全程不用加班,半小时搞定,真正实现“躺平式开发”。
为什么选SpringBoot?它到底是什么?
很多新手一听到“SpringBoot”就害怕,觉得是高深莫测的企业级框架。其实没那么复杂。
简单说:SpringBoot 是一个帮你快速搭建Java后端服务的工具。它把那些繁琐的配置(比如连接数据库、启动Web服务器)都封装好了,你只需要写核心逻辑,剩下的它自动搞定。
我当初学的时候,光配个Tomcat服务器就折腾了一周。而用SpringBoot,三行代码就能启动一个Web服务——这才是现代开发该有的样子。
环境准备:5分钟搭好开发环境
别担心,哪怕你从来没装过Java,照着做就行。
第一步:安装JDK(Java开发工具包)
- 打开 Oracle官网 或使用国内镜像(如华为云)
- 下载 JDK 17(推荐长期支持版本)
- 安装时记住安装路径,比如
C:\Program Files\Java\jdk-17
⚠️ 注意:不要下载JRE,要下载JDK!
第二步:安装IDE(代码编辑器)
推荐 IntelliJ IDEA Community(免费版):
- 官网下载:https://www.jetbrains.com/idea/download/
- 安装后打开,会自动识别JDK路径
第三步:注册文心一言API(免费!)
- 访问 百度智能云千帆大模型平台
- 注册账号 → 实名认证 → 进入“控制台”
- 创建应用,获取
API Key和Secret Key - 在“模型广场”中找到 ERNIE-Bot-turbo(轻量、免费、响应快)
💡 小技巧:新用户有免费调用额度,足够学习使用。
核心概念:三句话搞懂关键点
为了让零基础朋友也能理解,我用生活化比喻解释:
| 技术术语 | 通俗解释 |
|---|---|
| SpringBoot | 像“预制菜”——食材调料都配好了,你只需加热(写业务逻辑) |
| REST API | 应用之间的“电话”——A程序打电话给B程序,问“今天天气怎么样?” |
| 文心一言API | 一个聪明的AI客服——你发问题,它返回答案 |
我们的目标:用SpringBoot搭一个“中间人”,你通过浏览器提问,它转发给文心一言,再把答案返回给你。
实战项目:手把手写一个AI问答小助手
现在,我们来写代码。放心,每一步我都拆解清楚。
步骤1:创建SpringBoot项目
打开 IntelliJ IDEA:
- 点击 New Project
- 选择 Spring Initializr
- 填写:
- Project SDK: 选你刚装的JDK 17
- Language: Java
- Spring Boot: 选最新稳定版(如3.2.x)
- 添加依赖:
- Spring Web(提供HTTP接口能力)
- Spring Boot DevTools(热更新,改代码不用重启)
点击“Finish”,等待几秒,项目就建好了。
步骤2:写一个测试接口(验证环境OK)
在 src/main/java/com/example/demo 目录下,新建 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 "恭喜!你的SpringBoot服务已启动!";
}
}
运行 DemoApplication.java,打开浏览器访问:http://localhost:8080/hello
如果看到那句恭喜语,说明环境没问题!
步骤3:集成文心一言API
我们需要两个东西:
- 用你的
API Key和Secret Key换取 access_token - 用
access_token调用文心一言接口
先创建一个工具类 BaiduAuthUtil.java:
package com.example.demo;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class BaiduAuthUtil {
private static final String API_KEY = "你的API_KEY";
private static final String SECRET_KEY = "你的SECRET_KEY";
private static final String TOKEN_URL =
"https://aip.baidubce.com/oauth/2.0/token?" +
"grant_type=client_credentials&" +
"client_id=" + API_KEY + "&" +
"client_secret=" + SECRET_KEY;
public static String getAccessToken() throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(TOKEN_URL))
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(response.body());
return root.get("access_token").asText();
}
}
🔐 安全提示:实际项目中,密钥应放在配置文件或环境变量中,不要硬编码!
接着,创建AI服务类 WenxinService.java:
package com.example.demo;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class WenxinService {
public static String ask(String question, String accessToken)
throws IOException, InterruptedException {
String url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + accessToken;
String jsonBody = """
{
"messages": [
{"role": "user", "content": "%s"}
]
}
""".formatted(question);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(response.body());
return root.get("result").asText();
}
}
步骤4:整合成完整接口
修改 HelloController.java:
@GetMapping("/ask")
public String askWenxin(String q) {
try {
String token = BaiduAuthUtil.getAccessToken();
String answer = WenxinService.ask(q, token);
return "问题:" + q + "\n\n回答:" + answer;
} catch (Exception e) {
return "出错了:" + e.getMessage();
}
}
重启服务,浏览器访问:http://localhost:8080/ask?q=今天适合加班吗?
你可能会看到类似回复:
“工作与休息应合理平衡,过度加班不利于身心健康。建议高效完成任务后适时休息。”
看,AI都在劝你别加班!这不就是躺平哲学的终极体现吗?
新手常见问题解答
Q1:为什么我的API Key无效?
- 检查是否复制了空格
- 确认是否在千帆平台“启用”了应用
- 免费额度是否用完(可查看用量)
Q2:启动报错“NoClassDefFoundError”?
这是缺少依赖。在 pom.xml 中确保有:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
Q3:中文乱码怎么办?
在 application.properties 文件中添加:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
Q4:每次都要重新获取token?太慢了!
没错!实际开发中,access_token 有效期30天,可以缓存起来。建议用 @Component + 定时任务刷新,这是进阶内容,后续视频我会讲。
学习建议:下一步怎么走?
你已经完成了第一个“躺平式”AI应用!但这只是开始。我的建议是:
- 不要死磕理论:像今天这样,边做边学效率最高
- 从小工具做起:比如自动生成周报、自动整理日志、自动回复邮件
- 善用AI辅助编程:让文心一言帮你写单元测试、解释错误信息
- 拒绝无效加班:把重复劳动自动化,把时间留给学习和生活
我当初就是因为不想每天手动导出Excel报表,才开始学SpringBoot。结果不仅省了时间,还涨了工资——老板说我“提升了团队效率”。
技术真正的价值,不是让你更累,而是让你更自由。
结语:躺平不是摆烂,而是高效清醒
在这个鼓吹“狼性文化”的时代,选择“躺平”需要勇气。但我想说:躺平 ≠ 不努力,而是把力气花在刀刃上。
用SpringBoot写个小工具,省下两小时加班时间;用文心一言生成初稿,避免无意义的会议材料;自动化部署流程,不再半夜被叫醒修服务器……这些,都是程序员的“躺平智慧”。
希望这篇教程,不仅能教会你技术,更能传递一种态度:我们写代码,是为了掌控生活,而不是被生活掌控。
如果你喜欢这种“实用+思考”的风格,欢迎关注我的B站账号【代码人生】,我会持续更新“反内卷技术指南”。下期预告:《用Python自动抢演唱会门票,告别黄牛》。
共勉。

评论 0