AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

技术速递| VS Code Java 5 月更新 - 神秘 AI 功能揭晓!大量 Spring 新特性更新

  • 2024-12-08
    北京
  • 本文字数:2739 字

    阅读完需:约 9 分钟

大小:1.12M时长:06:30
技术速递| VS Code Java 5月更新 - 神秘 AI 功能揭晓!大量 Spring 新特性更新

大家好,欢迎来到 Visual Studio Code 的 Java 五月更新!在本篇博客中,我们将分享一个令人兴奋的与 AI 相关的新功能,专门 Visual Studio Code 上 的 Java 开发者准备。另外,还会有几个重要的 Spring 的重要更新,让我们开始吧!


基于 Github Copilot 优化并重构 Java 代码


当我们的代码更新迭代,我们的业务逻辑会不断变复杂。与此同时,Java 的版本也在不同地升级。我们一些旧的代码通常可以用一些更好的新的代码去替代,不仅可以提升它们的效率,也可以使代码更美观和简洁。这些事情之前可能都需要我们人为去做,而随着 AI 的普及,慢慢很多任务都可以用 AI 相关工具去处理,而伴随 Build 大会 2024 的各种 AI 产品的发布,我们也想给广大在 Visual Studio Code 上 的 Java 开发者带来一个好消息,我们已在 Java 插件中的 Insider(Pre-release) 版本中发布了一项重要的新功能: “Rewrite with new Java syntax”,允许开发者一键优化自己的 Java 代码!该功能与 GitHub Copilot 相互集成,因此开发者需要有 GitHub Copilot 的许可。


以下是该功能的工作流程:在您的 Java 类上,将会在类名上方出现一个新的 CodeLens 文本:“Rewrite with new Java syntax”。用户点击此文本后,将会触发对当前 Java 类的检查。检查完成后,Visual Studio Code 将显示改进建议,并指示用户代码改进建议的位置。演示如下:


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    对于每个建议,会出现附加的 CodeLens,显示具体改进建议的内容。用户可以直接点击 CodeLens 文本,这样将直接调出弹出 GitHub Copilot 的聊天对话框。用户可以直接查看潜在的代码修改建议,并会被提供“接受(Accept)”或“放弃(Discard)”的选择。如果用户接受建议,那么原有代码将被覆盖。让我们看看第一个示例,其中 for 循环可以用 IntStream 重构。



    再来看另一个示例,我们的功能建议将多重的 if 和 else-if 逻辑直接重写为 switch 表达式。通过点击 CodeLens 文本,代码可以直接重写为改进后的代码。



    各种 AI 产品

    https://blogs.microsoft.com/blog/2024/05/21/whats-next-microsoft-build-continues-the-evolution-and-expansion-of-ai-tools-for-developers/


    检查部分代码

    有时我们可能不想检查整个类,因为有些代码可能过于复杂。我们的功也支持检查部分代码。我们只需选择要检查的代码,然后点击左侧的灯泡,选择“Rewrite with new Java syntax”。这是一个示例:


    00:00 / 00:00
      1.0x
      • 3.0x
      • 2.5x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.75x
      • 0.5x
      网页全屏
      全屏
      00:00


      通过这种方式,开发人员可以更灵活地检查代码。


      此功能旨在利用 AI 为 Java 开发人员提供有用的建议和方便的重构。我们希望这可以大大提高开发人员的生产力。目前该功能主要聚焦在用更新的 Java 语法替换当前的代码,如果您对此功能有任何反馈,请在我们的 GitHub repo 上提交问题!


      要使用此功能,开发人员需要安装 Insider(Pre-release)版本的 Java 插件包和 GitHub Copilot 插件。(需拥有 GitHub Copilot 许可证)


      提交问题

      https://github.com/microsoft/vscode-java-pack/issues

      Java 插件包

      https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

      GitHub Copilot 插件

      https://marketplace.visualstudio.com/items?itemName=GitHub.copilot


      Spring 相关更新

      JPQL 语法高亮


      Spring Boot Tools 插件现在为 JPQL 查询字符串提供语法高亮显示。语法高亮显示适用于 Java 源文件中的 @Query 注释以及命名查询属性文件。这使得阅读这些查询字符串更加容易。以下是一个演示截图:


      从`pom.xml` 直接添加 Spring Boot Starter


      我们在 Spring Boot 项目的 pom.xml 文件的依赖部分添加了一个可点击的提示。这个可点击的提示直接调用支持添加额外的 Spring Boot starter 模块。这提高了该功能的可发现性和可用性,使其非常容易找到和使用。


      Spring Boot Dashboard 可以显示当前激活的 Profile


      Spring Boot Dashboard 现在在运行的 Spring Boot 应用程序的端口旁边直接显示活动的配置文件。这在预发布(Pre-release)版本中可用。


      00:00 / 00:00
        1.0x
        • 3.0x
        • 2.5x
        • 2.0x
        • 1.5x
        • 1.25x
        • 1.0x
        • 0.75x
        • 0.5x
        网页全屏
        全屏
        00:00

        自动将 application property 转换为 YAML 及其反向转换


        Spring Boot Tools 现在提供操作,自动将 application.properties 文件转换为 YAML 格式,反之亦然。这使得切换到你喜欢的格式非常简单,以下是一个演示:


        00:00 / 00:00
          1.0x
          • 3.0x
          • 2.5x
          • 2.0x
          • 1.5x
          • 1.25x
          • 1.0x
          • 0.75x
          • 0.5x
          网页全屏
          全屏
          00:00

          性能和占用空间的改进


          Spring 项目的索引基础设施得到了改进。以前的机制能够在内存耗尽之前索引单个项目中约 6,500 个 Java 源文件。最新版本现在在相同的内存限制内可以索引多达 60,000 个 Java 源文件。此外,用于 Spring 特定验证的 Java 源文件的初始和持续性能现在比以前快了两倍。


          测试覆盖率更新


          在四月份,我们在 Visual Studio Code 的稳定版本上发布了我们的 Test Runner 插件的测试覆盖率功能。发布后,我们收到了很多积极的反馈。但是,我们也收到了关于如何使用该功能的问题。一个常见的问题是如何在每次执行时重置覆盖数据。


          默认情况下,插件将追加覆盖数据(我们使用 jacoco 作为工具,jacoco 默认会追加覆盖数据)。


          如果您想在每次覆盖执行之前重置覆盖数据,可以使用以下设置:

          "java.test.config": {     	"coverage": {         		"appendResult": false     	}}
          复制代码


          jacoco 默认会追加覆盖数据

          https://www.eclemma.org/jacoco/trunk/doc/agent.html


          安装 Java 插件包


          要使用上述所有功能,请在 Visual Studio Code 上下载并安装 Extension Pack for Java。



          Extension Pack for Java

          https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack


          如果您是一位 Spring 开发者,并且正在编写 Spring Boot 相关的程序,您也可以下载并安装 Spring Boot 插件包,获得与 Spring Boot 有关的专属开发体验。


          Spring Boot 插件包

          https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack


          反馈与建议


          2024 年,Visual Studio Code 上的 Java 会有很多激动人心的更新,一如既往,您的反馈和建议对我们非常重要,将有助于我们未来的产品塑造。有几种方法可以给我们留下反馈:

          • 填写中文问卷

            https://www.research.net/r/vscodejava?lang=zh

          • 在这个帖子下留言

          • 在我们的 GitHub repo 上创建 Issue

            https://github.com/microsoft/vscode-java-pack/issues/new/choose

          • 发送电子邮件到 vscjfeedback@microsoft.com


          资源


          以下链接和资源能帮助您更好地了解 Java on Visual Studio Code 的相关信息:

          • 了解更多 Visual Studio Code 上 Java 的更多信息

          https://code.visualstudio.com/docs/languages/java

          • 逐步探索有关 Visual Studio Code 的 Java 教程

          https://code.visualstudio.com/docs/java/java-tutorial


          微信公众号|微软开发者 MSDN

          新浪微博|微软中国 MSDN


          更多精彩内容请点击下载

          《Azure OpenAI 生成式人工智能白皮书》

          《利用 AI 和 DevOps 重新定义开发人员体验》

          《SAP on Microsoft Cloud》

          《智能GitHub Copilot副驾驶®提示和技巧》

          2024-12-08 18:005595

          评论

          发布
          暂无评论
          发现更多内容

          熊磊:成功移植OpenHarmony到多套开发板,是最开心的事

          OpenHarmony开发者

          开发板 OpenHarmony

          马斯克推崇的柏拉图式元宇宙,PlatoFarm早已验证出答案

          股市老人

          银行RPA趋向主动触发流程,补足营销场景执行末端的渠道协同能力

          易观分析

          银行 市场营销

          OpenHarmony 3.1 Release版本关键特性解析——Enhanced SWAP内存管理

          OpenHarmony开发者

          内存管理 OpenHarmony

          有数BI大规模报告稳定性保障实践

          网易数帆

          大数据 BI 网易 稳定性保障

          前端工程化之FaaS SSR方案​

          百度Geek说

          前端

          2022年5月中国数据库排行榜:openGauss 黑马首登顶,AntDB 冲进20强

          墨天轮

          数据库 opengauss TiDB oceanbase 神通

          密码学系列之:PKI的证书格式表示X.509

          程序那些事

          Java 密码学 程序那些事 5月月更

          宜搭小技巧|海量数据管理难?这招帮你事半功倍

          一只大光圈

          钉钉宜搭

          金融任务实例实时、离线跑批Apache DolphinScheduler在新网银行的三大场景与五大优化

          白鲸开源

          Apache 大数据 开源 DolphinScheduler workflow

          Jmeter高手进阶-脚本增强

          伤心的辣条

          Python 程序人生 软件测试 IT 自动化测试

          对话ACE第三期有奖调研

          OceanBase 数据库

          数据库 对话ACE Oracle ACE

          druid 源码阅读(八)Druid 回收连接

          爱晒太阳的大白

          5月月更

          堡垒机4a认证是什么意思?是指哪4a?

          行云管家

          云计算 网络安全 堡垒机 堡垒机认证

          互联网出海企业数据库选型问答实录

          OceanBase 数据库

          云数据库 oceanbase 互联网出海

          自建Gitlab迁移工具使用指南

          阿里云云效

          云计算 阿里云 gitlab 代码迁移 代码库

          【云计算】云计算四个必学知识看这里!

          行云管家

          云计算 云服务 企业上云

          龙蜥开发者说:我的操作系统之路,坚持从实践中来,到实践中去 | 第6期

          OpenAnolis小助手

          Linux 开源 操作系统 龙蜥社区 龙蜥开发者说

          Redis io多线程

          C++后台开发

          redis 后端开发 Linux服务器开发 C++后台开发 单线程

          Linux下玩转nginx系列(五)---nginx实现负载均衡

          anyRTC开发者

          nginx Linux 负载均衡 音视频

          Nebula Graph|如何打造多版本文档中心

          NebulaGraph

          数据库 图数据库 NebulaGraph

          钱卫宁:开源是培养数据库人才的关键|OceanBase 数据库大赛访谈

          OceanBase 数据库

          oceanbase 数据库大赛

          CRM系统帮助企业有影响力的营销

          低代码小观

          CRM 客户关系管理 企业管理系统 CRM系统 客户关系管理系统

          解锁户外降温黑科技,图拉斯新品发布会完美收官

          极客天地

          爱番番微前端框架落地实践

          百度Geek说

          前端

          一图详解java-class类文件原理

          华为云开发者联盟

          Java JVM class 类文件

          战“码”先锋直播预告丨如何成为一名优秀的OpenHamrony贡献者?

          OpenHarmony开发者

          OpenHarmony 贡献代码

          AIRIOT物联网低代码平台如何配置三菱PLC驱动?

          AIRIOT

          物联网 PLC 驱动配置

          百问百答第38期:关于nginx监控,我们这样做

          博睿数据

          博睿数据 nginx监控

          javascript 中搜索数组的四种方法

          CRMEB

          Hoo研究院 | 币圈后浪—PRISM

          区块链前沿News

          Hoo

          技术速递| VS Code Java 5月更新 - 神秘 AI 功能揭晓!大量 Spring 新特性更新_微软_微软中国MSDN_InfoQ精选文章