最近试了飞算(Feisuanyz)的 JavaAI 插件,最大的感受就一个:它终于能看懂我们项目的“潜规则”了。

以前用其他 AI 编程工具,总得先当“人肉翻译”:“返回体叫 Result,不是 ApiResponse!”“别自己写加密,调 SecurityUtils!”…… 而这次用了它的 「关联上下文」 功能(官方文档在这:https://www.feisuanyz.com/docs/languages/createConversation/associateContext.html),我只传了几个关键文件,后面的事它基本都“心领神会”。

下面结合两个核心模块——智能引导 和 AI工具箱,说说几个让我觉得“这玩意儿真能用”的真实场景。


一、「智能引导」:从一句话需求到可跑代码,中间不用我插嘴

「智能引导」听起来像是个流程向导,其实更像是个“需求理解+自动填空”工具。重点是:它会根据你上传的上下文,自动补全那些你懒得说、但团队默认都知道的细节。

✅ 案例:加个“支付成功通知”接口

背景:订单状态变成“已支付”后,要调第三方支付平台做二次确认,再发个通知。

我干了啥:

  1. 上传了几个文件:
    1. Order.java(里面有 status 字段)
    2. PaymentService.java(已有 pay() 方法)
    3. Result.java(统一响应体)
    4. application.yml(能看出用了 Feign 调外部服务)
  1. 在「智能引导」里新建对话,输入:
  2. “当订单状态变为‘已支付’时,调用第三方支付平台确认并发送通知。”

1、理解需求

2、设计接口

3、表结构设计

4、处理逻辑(接口)

5、生成源码

最爽的是:没人问我“为啥不用统一响应体”——因为它本来就没犯这个错。


二、「AI工具箱」:不是万能修理工,而是懂你技术栈的“老同事”

「AI工具箱」里一堆小工具,像单元测试生成、安全修复、框架升级……

但和其他工具最大的区别是:它知道你项目里到底用的是啥,不会瞎建议。

✅ 案例1:用「框架升级器」把 Spring Boot 2.7 升到 3.2

我们有个老服务要升级,手动搞太麻烦,就试试 AI。

操作:

  • 上传 pom.xmlUserEntity.java(Lombok)、UserMapper.java(MyBatis-Plus)、application.yml
  • 在「AI工具箱」选「框架升级器」,目标版本:Spring Boot 3.2

它输出的建议很实在:

  • pom.xml:自动改 <spring-boot.version>,还给 Lombok 加了 compileOnly(SB3 要求);
  • UserEntity.java:说 @Data 可以留,但提醒 @NoArgsConstructor 在 JDK17 下可能有问题;
  • UserMapper.java:看到用了 @Select("..."),没说“删掉”,而是提醒“注意 SQL 注入”,建议用 #{}
  • application.yml:指出 server.port 没变,但 session.timeout 的路径变了;
  • 还主动建议加 spring-boot-starter-validation,因为 SB3 默认不带。

对比一下:如果没上传上下文,它可能会直接删掉 Lombok 注解,或者建议重写整个 Mapper —— 那就真成“破坏性升级”了。

✅ 案例2:用「Java安全修复器」修 SQL 注入

项目里有一段老代码:

String sql = "SELECT * FROM user WHERE email = '" + email + "'";

我选中这段,点「安全修复器」。

它没甩一句“用 PreparedStatement”就完事,而是:

  • 看到项目用 MyBatis-Plus,优先建议改成:
  • java
lambdaQuery().eq(User::getEmail, email).one();
  • 如果非要用原生 SQL,才给 JDBC 参数化方案;
  • 顺带提醒:“建议加 @NotBlank 校验,防止空 email 导致注入”。

这才是“贴地飞行”的安全建议——不是教科书答案,而是能直接合进你代码库的方案。

✅ 案例3:自动生成单元测试,连 Mock 都配好了

新写了 OrderService.createOrder(),想补个测试。

上传了:

  • OrderService.java
  • BaseTest.java(里面配了 H2 + MockMvc + 用户认证模拟)
  • OrderValidator.java

点「单元测试生成器」,选方法,生成:

@Test
@WithMockUser(username = "admin")
public void testCreateOrder_Success() {
    OrderRequest request = new OrderRequest();
    request.setProductId(1L);
    request.setQuantity(1);
    Result<OrderResponse> result = orderService.createOrder(request);
    assertThat(result.getCode()).isEqualTo(200);
    assertThat(result.getData().getStatus()).isEqualTo(OrderStatus.PENDING);
}

细节拉满:

  • 用了 @WithMockUser(因为 BaseTest 里有安全配置);
  • 断言 code == 200(来自 Result.java 的定义);
  • 没重复写字段校验(因为 BaseTest 已覆盖通用逻辑)。

我几乎没改,直接跑通了。


三、说点大实话:好用,但也有小毛病

👍 真香的地方:

  • 不用反复解释项目规范:AI 看过你的代码,就知道你“怎么玩”;
  • 生成的代码能直接用:不是 demo 级玩具,是符合生产标准的;
  • 工具链打通了:从需求到测试,一套流程走完,不用切来切去。

👎 待改进的点:

  • 大项目上传慢:我们一个模块 600+ 文件,首次分析等了快一分钟;
  • 改了代码得手动刷新:比如我刚重构了 Result,但 AI 还按旧结构生成,得重新传;
  • 前端基本帮不上忙:传 .vue.ts 文件,它基本忽略,目前还是 Java 专属。

最后

飞算 JavaAI 的「关联上下文」,说白了就是让 AI 先读你的代码,再干活。

这听起来简单,但实际体验下来,省下的不是时间,而是沟通成本和返工次数。

如果你也在被各种“格式不对”“规范不符”的 AI 折磨,

不妨试试让它“看看你的项目”——说不定,它比新来的实习生还懂你。

参加官方组织的炫技赛,领京东卡、年货大礼包等三重大奖。

活动链接: https://activity.feisuan.com/

官网入口:https://www.feisuanyz.com/home

产品手册:https://www.feisuanyz.com/docs/languages/help.html

产品描述及功能操作视频:https://mp.weixin.qq.com/s/YnVlWB9602ROI3_WOVteoQ

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐