news 2026/9/7 15:44:12

Spring Boot开发环境从零配置指南:JDK、Maven与IDE全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot开发环境从零配置指南:JDK、Maven与IDE全解析

很多刚接触Spring Boot的朋友,第一次搜“环境配置”的时候,大概率是被一堆JDK、Maven、IDE、镜像源、依赖下载失败这些问题搞到头皮发麻。我见过不少同事,代码写得没问题,结果卡在环境上浪费一整天,最后发现是JDK版本和Spring Boot版本不匹配,或者Maven仓库路径带了个中文目录名。这篇东西我不打算写成官方文档的复读机,就按我自己从零折腾到正常上手的路径,把每一步的“为什么”和“坑在哪”讲清楚,希望能帮你一次把环境理顺。

1. 先从根上理解:Spring Boot到底需要哪几样东西

很多人一上来就装一堆软件,其实搞混了“运行环境”和“开发环境”的区别。Spring Boot本质上是一个Java框架,它打出来的包是一个可执行的Jar包,里面内嵌了Tomcat,所以跑起来只需要一个东西:JDK(Java Development Kit)

那为什么还要装Maven?因为Maven是构建工具,负责帮你下载依赖、编译代码、打包。你可以理解成:JDK是厨师本身,Maven是帮厨师买菜、洗菜、切菜的帮工。如果没有Maven,你就得自己手动下载几十个Jar包放到classpath里,那在真实的项目里是不可想象的。

所以最基础的环境清单只有三样:

  • JDK 8 / 11 / 17(具体选哪个,后面会详细说)
  • Maven 3.6+(或者用IDE自带的Maven也行)
  • 一个IDE(IDEA社区版够用,或者VS Code加插件)

这里有个常见的误区:以为必须装Tomcat。Spring Boot的内嵌Tomcat是随应用一起启动的,你不需要单独下载和配置Tomcat,除非你要做生产环境的独立部署,那属于部署层面的问题,跟开发环境配置是两码事。

如果你用的是IDEA终级版,它自带Spring Initializr,可以自动帮你生成项目骨架;社区版的话需要去Spring官网或者start.spring.io手动生成。这一步不涉及环境配置,但会影响你后续的操作体验。

另外还有一个小细节:Maven本身是Java写的,所以它的运行依赖于JAVA_HOME环境变量。也就是说,你必须先装好JDK,配置好JAVA_HOME,然后才能用Maven,顺序不能反。

在动手之前,先用命令检查一下你的电脑里是不是已经有Java了。Windows上按Win + R输入cmd回车,Mac/Linux打开终端,输入:

java -version

如果提示找不到命令,那说明还没装JDK;如果有版本号,那就看下版本是否符合要求。

2. JDK安装与版本选型:别用最新的,用最对的

2.1 Eclipse Temurin还是Oracle JDK?从实用角度选

JDK的发行版现在很多,OpenJDK、Oracle JDK、Eclipse Temurin、Amazon Corretto、Azul Zulu,标题上的Spring Boot官方文档推荐的是Java 17作为长期支持版本。我个人在实际项目里最常用的是Eclipse Temurin(原AdoptOpenJDK),原因很简单:免费、开源、更新稳定、国内镜像下载速度还过得去。Oracle JDK虽然在某些性能测试里略有优势,但它的商业许可条款比较麻烦,普通个人学习和中小公司项目没必要去趟那个浑水。

从官网下载的时候会看到很多版本号,这里有一个容易踩坑的点:Spring Boot 2.x系列对应的是JDK 8或JDK 11,Spring Boot 3.x系列强制要求JDK 17及以上。你如果跟着网上旧的教程装了个JDK 8,然后去start.spring.io创建项目时默认选Spring Boot 3.5.0(2025年最新的版本),就会直接因为编译版本问题报错。反过来,如果你用JDK 17跑Spring Boot 2.x的老项目,大多数情况下没问题,但有些老版本的第三方库在运行时会有一些奇怪的反射报错。

所以我给一个简单粗暴的选择逻辑:

  • 新项目直接上Spring Boot 3.x + JDK 17,这是2025年的主流组合。
  • 维护老项目就跟着项目里pom.xmljava.version属性走,不要自己随便改JDK版本。
  • 如果只是学习语法,JDK 17足够,千万不要去装JDK 21或更高版本,除非你明确知道自己在做什么,因为有些依赖的兼容性更新没那么快。

2.2 安装完成后的三个验证步骤

JDK安装包装完以后,环境变量这一步很多教程写得啰嗦又有疏漏,我按最稳的顺序带你走一遍。

Windows系统:

  1. 找到JDK的安装根目录,比如C:\Program Files\Eclipse Adoptium\jdk-17.0.12.7,注意这个路径里不要有中文和空格以外的特殊字符。
  2. 在“此电脑”上右键 →“属性”→“高级系统设置”→“环境变量”。
  3. 在“系统变量”区域新建一个变量,变量名JAVA_HOME,变量值填JDK的根目录路径。
  4. 找到Path变量,点击编辑,在末尾添加一行%JAVA_HOME%\bin(这是Windows的写法,让系统能找到java.exe)。
  5. 最关键的一步:关闭当前所有命令行窗口,再重新打开一个新的cmd窗口,因为环境变量只在新的进程里生效。
  6. 运行java -versionjavac -version,两个命令都能输出版本号才算成功。

Mac系统相对简单一点,如果你用Homebrew安装:

brew install --cask temurin@17

装完以后Homebrew通常会自动配置好JAVA_HOME,不用手动改~/.zshrc。但如果你的机器里有多个JDK版本,想切换版本,可以在~/.zshrc里添加:

export JAVA_HOME=$(/usr/libexec/java_home -v 17)

这样每次打开新的终端窗口,默认就会用JDK 17。

这里有一个我踩过几次的坑:Windows上如果环境变量配置没错,但java -version还是提示找不到,八成是Path变量里旧版本的Java路径在前,系统优先匹配到了那个旧的。解决方法是去C:\Windows\System32下面看看有没有java.exe,如果有,删掉或者把新的%JAVA_HOME%\bin挪到最前面。

3. Maven环境配置:仓库路径、镜像源与多版本切换

3.1 为什么不用IDE自带的Maven

IDEA和VS Code都内置了Maven,默认配置下确实能跑,为什么我还要专门装一个独立的Maven?因为内置的Maven版本通常跟你的IDE版本强绑定,当你的项目需要特定Maven版本的时候(比如一些老项目要求3.6.3以下),内置版本就没法满足。另外,独立安装Maven的好处是,你在命令行里也能统一管理和操作项目,这在后续写CI脚本、部署脚本的时候是刚需。

去Apache Maven官网下载Binary zip archive,注意别下成了Source,解压到本地。同样在Path环境变量里添加Maven的bin目录路径,然后在命令行验证:

mvn -version

能看到Apache Maven版本和Java版本信息就成功了。

3.2 settings.xml里的三个必改配置

Maven装完以后,它会在~/.m2目录下自动建一个settings.xml(没有的话可以手动创建)。这个文件是整个Maven环境的核心,我每次在新电脑上配环境,必改三处:

第一处:本地仓库路径。默认是~/.m2/repository,如果放在C盘,用久了依赖多了会占大量空间,而且万一系统重装就全没了。我习惯改到D盘或单独的数据盘,比如:

<localRepository>D:/maven-repository</localRepository>

注意路径分隔符在Windows和Mac/Linux下的写法,建议统一用正斜杠/,避免转义问题。

第二处:镜像源。这是中国开发者必须处理的问题,不然下载依赖慢到怀疑人生。Maven默认从中央仓库下载,在大陆地区速度不太稳定,我一般在settings.xml<mirrors>节点加上阿里云镜像:

<mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

第三处:JDK版本编译插件配置。这一步经常有人漏掉,导致命令行打包报invalid target release错误。在<profiles>节点里加:

<profile> <id>jdk-17</id> <activation> <activeByDefault>true</activeByDefault> <jdk>17</jdk> </activation> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion> </properties> </profile>

这样能避免你在IDEA里运行正常,但命令行mvn package却因为编译级别不匹配而失败的神奇问题。

3.3 多个Maven版本的切换思路

我电脑上同时装过3.6.3和3.9.x两个版本,因为有些公司老项目锁定了Maven版本。Windows上我是直接用IDEA的Maven配置去指定使用哪个版本,命令行则通过修改Path变量的优先级来切换。Mac上更简单,用Homebrew安装多个版本到不同目录,然后改~/.zshrc里的PATH变量。

这个方法其实不太优雅,但胜在简单。如果你需要更专业的版本管理,可以考虑用SDKMAN(针对Unix系统)来管理JDK和Maven,但那个是后话了,新手阶段用不上。

4. IDE选型与关键配置:IDEA、VS Code怎么选

4.1 不同IDE的适用场景对比

环境配置里最容易让新手纠结的是IDE选择。我直接给结论:

  • IDEA社区版/终级版:Java后端开发首选,智能提示、重构能力、Debug体验都是最好的。社区版免费,功能上少了Spring Boot相关的部分辅助功能,但配合装几个插件,日常开发完全够用。
  • VS Code:如果你只是写写学习Demo,或者你本来是前端开发者顺便学Java后端,VS Code加Extension Pack for Java也够用。轻量、启动快,但大型项目的调试体验和代码导航不如IDEA。
  • Eclipse:除非公司强制要求,不然不建议新学习了。功能上没问题,但界面和操作逻辑已经过时。

4.2 IDEA + JDK + Maven全局配置

IDEA装完之后,第一次打开新项目会问你是否导入JDK和Maven设置。这里有一个容易忽略的点:IDEA自身的Settings里需要分别配置SDKs和Maven,它不会自动读取你系统的JAVA_HOME

步骤:

  1. File → Project Structure → Project,在SDK栏选择你安装的JDK版本。
  2. Settings → Build, Execution, Deployment → Build Tools → Maven,在Maven home path处选择你安装的Maven目录。
  3. 关键一步:勾选User settings file右边的Override,把路径指到你settings.xml所在的位置。如果不覆盖,IDEA会使用它自带的默认配置,那你之前配的阿里云镜像和地方仓库就不生效了。
  4. 最后检查一下Runner选项里的JRE,确保是你要用的JDK版本,否则运行Spring Boot主类的时候也可能报版本错误。

VS Code的视频配置逻辑类似,只是入口变成了settings.json,在用户配置里加上:

{ "java.configuration.runtimes": [ { "name": "JavaSE-17", "path": "你的JDK路径", "default": true } ] }

4.3 在线生成项目还是IDEA直接创建

我推荐新手直接用 start.spring.io 网页生成流程,原因有几点:网页上的依赖选择和Spring Boot版本、JDK版本是一一对应的,不容易选错;生成的模板是最新且标准的结构,不会像某些IDE模板那样带一些旧版本依赖。

网页上选择好:

  • Project:Maven
  • Language:Java
  • Spring Boot:3.x.x
  • Group:比如com.example
  • Artifact:比如demo
  • Dependencies:先只勾选Spring Web

然后点击Generate,下载得到一个zip包,解压后用IDEA打开pom.xml,IDEA会提示你导入Maven项目,选择信任即可。第一次导入会下载大量依赖,有阿里云镜像的话三五分钟就能搞定,没有的话可能要等很久,这也是我前面坚持让你先配置镜像的原因。

5. 项目里的核心配置文件怎么填

5.1 pom.xml中的版本选择策略

Spring Boot的pom.xml最外层继承了spring-boot-starter-parent,这个父POM已经帮你管理了所有starter的版本。你在添加依赖时不需要写版本号,但要注意你选择的starter版本是基于Spring Boot的版本来的,如果某个第三方库没有集成到Spring Boot的BOM里,才需要单独指定版本。

这里有一个排查思路:当IDEA报依赖冲突或找不到类的时候,不要急着改代码,先看pom.xml里有没有重复依赖。用IDEA的Maven面板 → Dependencies查看依赖树,能直观地看到谁是顶层引入,谁是间接引入的。

我遇到过的一个经典问题:项目里同时引了spring-boot-starter-webspring-boot-starter-webflux,两个框架对Web应用的入口定义不一样,结果Tomcat端口怎么配都不生效。这种问题不看依赖树根本定位不到原因。

5.2 application.yml里的环境相关配置

Spring Boot配置文件的写法我推荐用YAML格式,比properties更直观。一个基础的配置长这样:

server: port: 8080 servlet: context-path: /demo spring: application: name: demo-service datasource: url: jdbc:mysql://localhost:3306/demo_db?useUnicode=true&characterEncoding=utf8 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true

有几个配置细节值得展开说说:

server.port如果配置成0,Spring Boot会随机选一个可用的端口,这在本地多实例调试的时候很有用。

context-path给接口统一加前缀,比如所有的接口都变成/demo/xxx,方便后面做网关路由和接口隔离。

spring.application.name必须设置,后面你在集成Nacos、Spring Cloud或者Actuator监控时,服务名就是靠它来标识的。我见过新手不写这个name,然后在Spring Cloud环境里服务列表一片混乱的情况。

5.3 多环境配置:dev、test、prod的切换方式

真实项目基本都是多环境部署的,开发环境连本地数据库,测试环境连测试库,生产环境连生产库。Spring Boot原生支持多配置文件方案,我习惯的做法是:

  • application.yml里放公共配置
  • application-dev.yml里放开发环境配置
  • application-prod.yml里放生产环境配置

然后在application.yml里指定激活哪个环境:

spring: profiles: active: dev

命令行启动时可以动态覆盖:

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

这个机制的原理是Spring Boot在启动时会先加载application.yml,根据spring.profiles.active的值再去加载对应的application-{profile}.yml文件,后者会覆盖前者的相同配置项。

这里有一个容易犯的错:某些新版本的日志配置、Actuator配置也区分环境,如果只在application-prod.yml里开启了某个端口的暴露,但公共配置里没有相关兜底,你在dev环境会莫名其妙地访问不了某些监控接口。所以多环境配置的准则应该是“公共配置尽量全,环境配置只管差异”。

6. 从热词看常用配置场景:Actuator监控、Redis Stream、JSON处理

6.1 Micrometer + Spring Boot Actuator的监控端点配置

热词里频繁出现micrometer + spring boot actuator,在2025年这已经是Spring Boot应用可观测性的标配了。Actuator本身是Spring Boot提供的一系列监控端点,Micrometer是它的指标门面框架,两者配合可以把JVM指标、HTTP请求指标、数据源指标暴露成Prometheus格式。

环境配置层面你需要做两件事:

第一,pom.xml里加依赖:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>

第二,application.yml里配置暴露端点:

management: endpoints: web: exposure: include: health,info,prometheus

注意,include: '*'表示暴露所有端点,但生产环境我建议只暴露healthprometheus来配合监控系统拉取。如果把shutdown端点也暴露出去,外部人员是可以直接关停你应用的,这是个很严肃的安全风险。

配置好之后,访问http://localhost:8080/actuator/health能看到{"status":"UP"},访问http://localhost:8080/actuator/prometheus能看到一堆指标文本,这就说明监控链路联通了。

6.2 Spring Boot集成Redis Stream:解决队列消息消费

Redis Stream是Redis 5.0引入的消息队列模型,很多轻量级场景用它来替代Kafka或RabbitMQ。在这个场景里,环境配置的关键在于spring-boot-starter-data-redis这个依赖以及连接配置。

依赖:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>

连接配置:

spring: data: redis: host: localhost port: 6379 password: timeout: 5000ms

Spring Boot 2.x和3.x的Redis配置前缀有变化,2.x用的是spring.redis,3.x改成了spring.data.redis。我见过有同事升级Spring Boot版本后,旧的Redis配置失效,一直报连接超时,最后发现是前缀不对。

至于拉取Stream消息,Spring Boot 3.x里可以通过StreamListenerStreamMessageListenerContainer来实现消费者组模式。这个属于代码层面的内容,环境配置阶段只需要确保Redis连接没问题,然后使用RedisTemplate去测试opsForStream()操作不报错即可。

6.3 JSON处理与全局Jackson配置

Spring Boot默认使用Jackson处理JSON序列化和反序列化,一般不需要额外引入依赖,spring-boot-starter-web里已经带了。但有一个环境配置层面的坑:当接口返回的实体字段命名不规范,或者包含LocalDateTime这类Java时间类型时,默认序列化结果不是你想要的。

环境层面能做的事是配置一个全局的Jackson优化,在application.yml里:

spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 default-property-inclusion: non_null

这里time-zone如果不设置成GMT+8,后端返回的时间会跟北京时间差8个小时,这是新手必踩的坑之一。

7. 写个最简单的Demo验证环境是否完全跑通

所有配置做完之后,写一个最简单的接口来验证。在主启动类的同包或子包下建一个Controller:

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 hello() { return "Hello Spring Boot!"; } }

然后运行主类里的main方法,看到类似下面的日志输出:

Tomcat started on port(s): 8080 (http) Started DemoApplication in 2.5 seconds

浏览器访问http://localhost:8080/hello,能看到Hello Spring Boot!就说明整套环境完全跑通了。

这个验证过程包含了JDK编译、依赖下载、内嵌Tomcat启动、Spring容器初始化、请求路由分发,任何一个环节有问题都会在这里暴露出来,这比一步步去检查要高效很多。

8. 常见报错与排查:能帮你省下大半天时间

8.1 端口被占用和端口配置失效

启动时报Port 8080 was already in use,最直接的解决方式:

# Windows netstat -ano | findstr 8080 taskkill /PID 进程号 /F # Mac/Linux lsof -i :8080 kill -9 进程号

但如果你改了server.port还是不生效,就得去排查是不是有多个配置文件被同时加载,以及IDE里是否勾选了某些环境变量导致覆盖。

8.2 中文乱码问题

这个我在Windows上几乎每次都遇到。解决方法是保证三个层面的编码一致:IDEA的Settings → Editor → File Encodings里设置Global Encoding、Project Encoding、Properties Files的Default Encoding都为UTF-8。pom.xml里再加:

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>

如果控制台依然乱码,在IDEA帮助菜单里编辑idea64.exe.vmoptions,加上-Dfile.encoding=UTF-8之后重启IDE。

8.3 依赖下载慢或下载失败

这个问题基本就是settings.xml镜像源配置的问题。我建议使用阿里云的同时,备份一个华为云的镜像作为备选,因为偶尔某个镜像源会挂掉或者同步不及时。另外要注意,IDEA里的Maven配置如果没覆盖User settings file,你在系统里改的settings.xml根本不会生效,这是最隐蔽的一个坑。

8.4 mvn package打包报错:Failed to execute goal

这类错误原因很多,最常见的有:

  • 代码里的测试类失败,可以在pom.xml里配置跳过测试:
<properties> <maven.test.skip>true</maven.test.skip> </properties>
  • 依赖没有下载完整,检查~/.m2/repository下是否有同名.lastUpdated结尾的文件,有的话删掉重新mvn clean install
  • 编译版本不匹配,回到前面说的maven.compiler.source配置去排查。

8.5 本地运行不是预期结果:检查缓存

IDEA有时候会缓存旧的编译结果,出现改了代码却还是跑旧逻辑的情况。菜单位置是Build → Rebuild Project,如果还不行就File → Invalidate Caches,重启后清掉所有缓存和索引。这个操作在Spring Boot项目里特别有用,因为注解处理器和配置类比较多,热重载偶尔跟不上。

9. 把环境配置做得更贴近真实生产

环境配置做到能跑通Demo只是第一步,真实项目里通常还要关注几个点:

首先,.gitignore文件里要把target/目录、.idea/目录、*.iml文件、application-local.yml这类本地私密配置排除掉,防止提交到代码仓库,要不然同事拉下来你的数据库密码、oss密钥就全曝光了。

其次,可以考虑使用docker-compose来管理基础中间件(MySQL、Redis等)的开发环境。比如本地要启动一个Redis,与其在自己电脑上安装各种客户端和服务端,不如直接写一个:

services: redis: image: redis:7-alpine ports: - "6379:6379"

docker compose up -d一键搞定,删掉也干净,不会污染宿主机环境。这一点对Windows用户特别友好,省了一堆One-click Installer的麻烦。

最后,学习阶段可以试试用VS Code来跑一遍同样的流程。虽然我主力是IDEA,但熟悉VS Code的Java环境配置,在远程开发、轻量服务器管理的时候格外有用。配置好Extension Pack for Java之后,它同样可以编译运行和调试Spring Boot项目,而且资源占用比IDEA低一个量级。

环境配置这个东西,说难不难,说简单也容易阴沟里翻船。我见过太多人卡在“为什么Java安装成功但IDEA识别不了”“为什么Maven下载依赖慢得离谱”“为什么明明改了端口但还是起不来”这种基础问题上。归根结底,问题大多出在JDK版本不匹配、环境变量没有正确生效、Maven镜像没配好这三点上。你把上面这几步按顺序走完,其实就已经解决了90%的问题。剩下来的10%就是多跑、多碰、多看日志,环境这个东西只要你动手实践一遍完整的“新建项目—运行接口—打包—部署”,后面基本就不会再怕了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 15:43:40

Git Rebase实战:从混乱提交到线性历史

接手一个项目&#xff0c;第一次git log --oneline就给我看懵了。提交记录里密密麻麻都是 “Merge branch dev into feature”&#xff0c;夹杂着一堆 “update”、“fix”、“aaa” 这样的提交信息&#xff0c;根本看不出每条改动到底做了什么。后来我开始认真用git rebase&am…

作者头像 李华
网站建设 2026/9/7 15:42:53

点赞赚钱骗局技术解析:从API调用到支付安全的全链路防范

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 15:39:48

2026 氛围编程实战:把口头需求写成SPEC,MonkeyCode 云端跑通

2026 氛围编程实战&#xff1a;把口头需求写成SPEC&#xff0c;MonkeyCode 云端跑通 老冯带着 6 人小队给省级政务服务中心做窗口排队看板。客户在群里丢了一句&#xff1a;「做个能看排队的大屏&#xff0c;好看就行&#xff0c;数字对就行&#xff0c;最好还能把叫号系统接上…

作者头像 李华
网站建设 2026/9/7 15:38:47

决策树原理与实战:从熵到剪枝,用sklearn实现收入预测

1. 为什么要花时间搞懂决策树 说句实在话&#xff0c;机器学习的算法多如牛毛&#xff0c;深度学习、集成学习、各种神经网络的变体层出不穷。但你去看任何一份正经的机器学习课程大纲、任何一本经典的教材&#xff08;无论是周志华的《机器学习》还是李航的《统计学习方法》&a…

作者头像 李华
网站建设 2026/9/7 15:37:52

Hello 算法中的回溯算法:尝试、回退与剪枝的系统性总结

Hello 算法中的回溯算法&#xff1a;尝试、回退与剪枝的系统性总结 【免费下载链接】hello-algo 《Hello 算法》&#xff1a;动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語&#xff0c;提供 Python, Java, C, C, C#, JS, Go, Swift, Rust, Ruby, K…

作者头像 李华
网站建设 2026/9/7 15:37:08

StateAct:面向长时任务的智能体状态管理架构与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华