写点什么

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

          评论

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

          “AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

          阿里云云效

          阿里云 云原生

          软件测试学习笔记丨后端接口基本开发 - spring boot发送 POST请求

          测试人

          软件测试

          MES系统 DE 生产绩效功能及分析

          万界星空科技

          绩效管理 生产管理系统 mes 工时管理 生产绩效

          Saturn 4 Ultra土星引领光固化3D打印消费新风尚,大众普及指日可待

          科技热闻

          牛批!大三就冲进腾讯了!2024最新大厂面经

          王中阳Go

          面试 面试题 大厂面经 Java 面试题 go面试题

          区块链交易所技术开发架构解析 交易所开发团队

          区块链软件开发推广运营

          dapp开发 区块链开发 链游开发 NFT开发 公链开发

          数栈+AI:数栈V6.2创新发布,让数据开发更智能

          袋鼠云数栈

          大数据 AI 信创 AI技术 大模型

          AIGC在设计中的应用实践

          智在碧得

          AI 设计 AIGC AIGC技术探索

          DAPP的商业模型创新: 探索可持续盈利路径

          区块链软件开发推广运营

          dapp开发 区块链开发 链游开发 NFT开发 公链开发

          NFT卡牌质押分红模式开发技术讲解分析

          区块链软件开发推广运营

          区块链开发 链游开发 NFT开发 公链开发 区块链开发DAPP开发

          「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!

          阿里云数据库开源

          阿里云 技术交流 开源数据库 polarDB 康恩贝

          Taylor Swift全新专辑上线华为音乐,谱写爱与诗歌音符

          最新动态

          软件测试学习笔记丨Selenium多窗口处理

          测试人

          软件测试 自动化测试 测试开发 selenium

          SD-WAN为什么在亚太地区普及?

          Ogcloud

          SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

          NFTScan | 04.15~04.21 NFT 市场热点汇总

          NFT Research

          NFT\ NFTScan

          高通将支持 Meta Llama 3 在骁龙终端运行;特斯拉中国全系车型降价 1.4 万元丨 RTE 开发者日报 Vol.189

          声网

          华为Mate X5升级HarmonyOS 4.2 大屏互动超有趣

          最新动态

          区块链钱包开发指南: 探究区块链钱包开发涉及

          区块链软件开发推广运营

          dapp开发 区块链开发 链游开发 NFT开发 公链开发

          万界星空科技工时管理系统功能介绍

          万界星空科技

          mes 工时管理 生产管理 车间管理 工时绩效

          一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

          西柚子

          OpenTiny 亮相 W3C 2024春季顾问委员会会议,共话行业新趋势。

          OpenTiny社区

          开源 前端 Web

          回归测试的四个步骤

          FunTester

          一文读懂链游!探索链游的前世今生,区块链与游戏结合的新兴趋势

          区块链软件开发推广运营

          dapp开发 区块链开发 链游开发 NFT开发 公链开发

          系统架构基础知识入门指南-下

          老张

          系统架构 业务流 端到端 技术实践

          OpenAI创始人Sam独家专访!GPT5升级时间确定!

          蓉蓉

          人工智能 openai ChatGPT

          “AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

          阿里巴巴云原生

          阿里云 云原生

          直播回顾|6个实例带你解读TinyVue 组件库跨框架技术

          OpenTiny社区

          开源 Vue 前端 组件库

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