写点什么

技术速递| 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:005440

          评论

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

          银行需明确低代码与无代码开发平台差异,以在技术上降低试错成本

          易观分析

          银行

          区块链Web3招聘:海量开发产品岗位等你来 Pick

          TinTinLand

          区块链

          类似 Teambition 的9大最佳项目管理软件

          爱吃小舅的鱼

          netty系列之:在netty中使用native传输协议

          程序那些事

          Java Netty 程序那些事 5月月更

          M-DAO开辟区块链全新战场,或成DAO赛道龙头

          BlockChain先知

          天翼云高可用虚拟IP(HAVIP)实践

          天翼云开发者社区

          六、云原生可观测性

          穿过生命散发芬芳

          可观测性 5月月更

          Notification发送消息

          空城机

          WebApi 5月月更

          大画 Spark :: 网络(7)-Spark网络中的“四次握手”Executor注册到Driver过程中的TransportClient与细节过程

          dclar

          大数据 hadoop spark 架构设计 源代码

          M-DAO开辟区块链全新战场,或成DAO赛道龙头

          小哈区块

          [Day44]-[回溯]-括号生成

          方勇(gopher)

          LeetCode 回溯算法 数据结构算法

          在线文本代码对比工具

          入门小站

          工具

          使用 Provider 改造屎山代码,代码量降低了2/3!

          岛上码农

          flutter ios 安卓开发 跨平台开发 5月月更

          [Day45]-[BFS]-滑动谜题

          方勇(gopher)

          LeetCode BFS 数据结构算法

          druid 源码阅读 9—— init 中的JMX是干啥的

          张大彪

          JVM进阶(十六)——JAVA 双亲委派模型

          No Silver Bullet

          类加载 双亲委派模型 5月月更

          css 学习笔记【三】浮动,不脱离文档流,继承和层叠

          恒山其若陋兮

          5月月更

          Redis「8」实现分布式限流与延时队列

          Samson

          redis 学习笔记 5月月更

          阿里云张新涛:异构计算为数字经济提供澎湃动力

          阿里云弹性计算

          XR 元宇宙 视觉计算

          DPU芯片企业中科驭数加入龙蜥社区,构建异构算力生态

          OpenAnolis小助手

          芯片 生态 龙蜥社区 CLA 中科驭数

          SPDK QOS机制解析

          天翼云开发者社区

          Hoo研究院|币海寻珠—5月区块链行业投资机构动向(上)

          区块链前沿News

          区块链 投资 虎符 Hoo

          M-DAO开辟区块链全新战场,或成DAO赛道龙头

          西柚子

          中国电子云数据库 Mesh 项目 DBPack 的实践

          峨嵋闲散人

          分布式事务 分库分表 读写分离

          时序数据库在桥梁监测领域中的应用

          CnosDB

          IoT 时序数据库 开源社区 CnosDB infra

          [Day43]-[回溯]-解数独

          方勇(gopher)

          LeetCode 数据结构算法

          linux之sed使用技巧

          入门小站

          Linux

          在线HTML转Excel工具

          入门小站

          工具

          首发!高性能数据访问中间件 OBProxy(一):功能模块及特性详解

          OceanBase 数据库

          oceanbase

          小红书信息流推荐多样性解决方案

          小红书技术REDtech

          推荐 SSD 多样性 KDD

          干货| 四种渲染到底是啥?终于有人讲明白了!(下)

          Orillusion

          开源 WebGL 元宇宙 Metaverse webgpu

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