IntelliJ IDEA 2023.1正式发布,Maven项目大提速支持Apache Dubbo

news2024/11/28 18:42:13

在这里插入图片描述

你好,我是YourBatman:做爱做之事❣交配交之人。

📚前言

一年一个大版本,共计3个中型版本,北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩,吃肉之前,可以先把这几碗汤干了,更有助于消化(每篇都很顶哦):

  • IntelliJ IDEA 2023.1正式发布,Maven项目大提速&支持Apache Dubbo
  • IntelliJ IDEA 2022.3正式发布,配置云同步&支持Redis好用到炸
  • IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6
  • IntelliJ IDEA 2022.1正式发布,我把Maven Helper卸载了
  • IntelliJ IDEA 2020.3正式发布,年度最后一个版本很讲武德
  • IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效
  • IntelliJ IDEA 2020.1正式发布,你要的Almost都在这!
  • IntelliJ IDEA 2019.3正式发布,给我们带来哪些新特性?

先来张启动图感受一下:
在这里插入图片描述
这是2023.1版本的启动图:
在这里插入图片描述

✍正文

官方对此版本的新变化总结:在 IntelliJ IDEA 2023.1中,我们根据用户的宝贵反馈对新UI做出了大量改进。 我们还实现了性能增强,从而更快导入 Maven,以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程。IntelliJ IDEA Ultimate 现在支持 Spring Security 匹配器和请求映射的导航。

🌈what’s new(新特性)

JetBrains 去年就已宣布了新UI(可参考笔者上篇IDEA文章),并表示要逐步且彻底改造新UI,为开发者提供更现代、可定制和用户友好的界面,从而改进整体的编码体验。

除了UI之外,我们再来看看本次版本的主要新特性Feature。

导入Maven项目大提速

官方数据,提速约40%:
在这里插入图片描述
笔者亲测(导入的Spring Boot项目为例):肉眼可见的提速了,导入的项目越大对比越明显。至于有没有达到官宣的提速40%,因项目而异。但,那不重要,实实在在的更快了就行。

支持Apache Dubbo

国人之光

IntelliJ IDEA官方提供插件来支持Apache Dubbo项目的开发,提供了内置支持的更友好的提示,足以见得Apache Dubbo的影响力还不错了,这是来自神秘东方力量。
在这里插入图片描述
虽然现在并非默认就内置此插件,需要手动下载。但已经很不错了。毕竟提名即肯定!

Compact Mode(紧凑模式)

新UI自上个版本(2022.3)就有了,笔者也是一直在使用。IDEA会持续优化它,Compact Mode(紧凑模式)这个新特性就只针对新UI:

Tips:紧凑模式默认并未开启,需要你手动设置启用(如下图)

在这里插入图片描述
紧凑模式简直就是命中了笔者的G点,大爱。放两张对比图自行感受下:

紧凑模式
在这里插入图片描述
普通模式
在这里插入图片描述
降低了工具栏和工具窗口标题的高度、缩小了间距和填充,图标和按钮也都缩小了一番,一致性非常好也非常和谐,很适合喜欢紧凑型布局的同学,比如我。

编辑区的可视区域又大了一丢丢,似乎效率又能提升一咪咪了?

支持Project的多tab选项卡

作为一个Javaer,打开5+甚至10+个工程乃稀疏平常之事,当你查看所有窗口想查找到某个之时,看到的就是一个字:,所以定位稍显困难。
在这里插入图片描述
IDEA团队当然也意识到了这个问题,所以此版本在同一个窗口对多Project提供了多tab支持,如下图:
在这里插入图片描述
这样多个project只需占据一个窗口即可,清爽多了:细心的你会发现窗口名显示为了与project无关的IntelliJ IDEA
在这里插入图片描述
其实早在上上个版本(2022.2)是支持project多tab页的,只是在2022.3版本给“弄没了”,现在可谓是又回归了。

PS:官方说此功能目前只支持Mac版本,不清楚Windows现在有没有,体验过的同学可分享下

值得一提的是:笔者其实并不喜欢此功能,原因是project的tab之间切换不方便:没有找到切换快捷键,得用鼠标点击,效率远不及Mac窗口切换那么丝滑高效。期待下个版本能解决此事:

  1. 提供project的tab之间切换的快捷键
  2. 设置项里可打开/关闭此功能

在项目打开时更早提供IDE功能

IntelliJ IDEA的代码提示、各种检索功能都是基于index索引:IDE在打开项目时会扫描项目将必要的索引加入到内存(知道IDEA为何这么吃内存了吧),从而提供更好的代码提示服务。因此在打开项目之初都能看到这样的进度条:
在这里插入图片描述

项目越大,Scanning的时间越长。在之前版本里:Scanning files to index完成之前,用户是没法使用代码提示、各种检索功能的,程序员此时能做的只有等待。

此版本后,这一点得到了改善:Scanning结果逐步交付。说人话:即使Scanning还没100%完成,IDE的一些功能也可使用了。解释详细点:如果你正使用的功能依赖的index已完成,就可正常使用,而无需等到所有index完成后再使用。

在新版本里,检索时你可能看到如下图字样,也就是这个原因。
在这里插入图片描述

增强的Java检查

IDE除了检查基本语法确保编译正常外,还会帮助对代码进行规范性、合理性检查,目的是帮助开发者提升程序性能,以及保持代码的干净。举几个例子:

优化冗余的String操作
在这里插入图片描述
contentEquals是JDK 5的方法,对比较CharSequence时的最佳选择,比equals方法更优。比如本例中,如果使用equals方法,sb先执行toString(),而StringBuilder的toString()方法执行了new操作,多产生了一个String中间对象:
在这里插入图片描述
这必然就降低了一丢丢性能,而contentEquals就无此担忧(至于原理,感兴趣的同学可去看看String#contentEquals源码)。

以后String和CharSequence类型进行相等判断时,推荐使用contentEquals()方法,比equals方法更好。

方法同一返回值检查
在这里插入图片描述
此方法虽然有两个return分支,但返回的都是2,新版IDEA就会提示你可以优化优化了。

支持多返回值的Extract Method

将多行代码提取到一个方法里,是开发中借助IDEA常见的操作,合理使用能把逻辑编排得更清晰,降低理解成本。但是,如果Extract Method时遇到需要多个返回值,在老版本IDEA里是不允许你提取,而这在新版本IDEA可以了,它会引导你分步进行。

private void demoFun() {
    // 提取 -- 计算结果start
    int a =1;
    int b =2;

    int sum = a + b;
    int total = a * b;
    // 提取 -- 计算结果end

    // 拿到两个结果后再计算、输出
    System.out.println(sum + total);
}

选中需要提取到方法内的代码,按下command + option + m即可按照IDEA的提示完成方法提取操作

  1. 若多个返回值,则先搞个private static的内部静态类来装载结果
  2. 将选中的代码放到新提取的方法体内,返回刚定义的静态内部类对象

结果如下:
在这里插入图片描述
值得分享的是:方法提取固然好,但使用不当一方面反而会让逻辑变得更错中复杂、晦涩难懂,另一方面也会暴露自己的能力短板,造成破功,因此建议谨慎为之。

全IDEA缩放

如果你做分享较多,或者是个UP主,这个功能是很赞的。
在这里插入图片描述
当然你也可以在顶部菜单栏里快速调整:
在这里插入图片描述
和之前版本的IDEA不同:它是全IDEA缩放。很适合想整个IDEA同比例放大的情况,如团队分享时、当UP主直播编码时。

VM Options字段中的自动补全

这个功能还不错,早就应该提供了,不然每次都得CV,效率不高。
在这里插入图片描述
虽然好用,但亲测提示得并不全,有的还是得CV,但聊胜于无。

🚀其它升级

  • 支持Java 20
  • 支持Spring Security 6
  • 更好的支持Scala 3
  • 添加了预定义新项目的 Actions on Save 行为的选项
  • 针对Windows系统:当Microsoft Defender运行时,IntelliJ IDEA 现在建议重新配置防病毒设置以获得更好的 IDE 性能
  • 检索:支持使用正则表达式来创建搜索和替换
  • Markdown格式文件功能增强了:如intention action和Fill Paragraph功能,以及专门的Markdown preferences管理页

✍总结

每次软件升级,我的建议就一个字:。大不了bug多再回退嘛,而这明显是小概率事件。

最后呼吁一句:m系列处理器 MacOS 13.3,屏闪问题什么时候能彻底解决?

升级到新版本IntelliJ IDEA后有所改善,但依旧没有根治,有木有同样情况的同学?

推荐阅读

  • 001. 为啥用IDEA反编译没有擦除泛型?
  • 002. java.lang.NumberFormatException: Infinite or NaN,怎么破?
  • 003. Spring Boot启动了几个IoC容器?如何证明?
  • 004. 可以向toList()返回的集合add元素吗?

在这里插入图片描述

  • 个人博客:https://yourbatman.cn
  • 程序员网盘:https://wangpan.yourbatman.cn
  • 女娲工程:https://start.yourbatman.cn
  • 更多专栏:https://yourbatman.cn/columns |或| 公号后台回复“专栏列表”获取全部小而美的原创技术专栏

我是YourBatman,一个俗人,贪财好色。历经过延期毕业、卖保险、送外卖的大龄程序员,《梦幻西游》骨灰玩家;龙珠迷、火影迷。前大厂资深技术专家,现资深领域建模专家、Java架构师;高质量代码、DDD面向对象设计布道师;Spring开源贡献者,CSDN博客之星年度Top 10,出版书籍《Spring奇淫巧技》&《领域建模之面向对象程序设计》进行时。wx:yourbatman-u

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

顺丰科技x腾讯安全iOA联合案例获云安全联盟CSA 2022安全革新奖

近年来,随着云计算、大数据、物联网等技术的加速创新和应用,一场数字化的变革开始席卷各行各业。远程办公、业务协同、分支互联等需求涌现,随之而来的还有更加复杂多元的高级网络攻击。在此背景下,传统的基于边界的网络安全防护理…

矩阵键盘+CH559制作国产USB矩阵键盘

矩阵键盘+CH559制作国产USB矩阵键盘 文章目录 矩阵键盘+CH559制作国产USB矩阵键盘为什么选择CH559作为主控芯片?如何实现该款矩阵USB键盘?如何将矩阵键盘的信号转化为USB键盘信号?原材料: 矩阵键盘(附带行列键码定义)CH559开发板将矩阵键盘的所有排线连接到单片机的GPIO引…

基于stm32mp157 linux开发板ARM裸机开发教程5:ARM微处理器指令系统(连载中)

前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) 针对对FS-MP1A开发板&…

Python | Python的自我介绍(前世今生)

本文概要 本篇文章主要介绍Python这门语言的前世今生,适合刚入门的小白或者想了解Python历史的同学,文中描述很详细,具有一定的学习价值,感兴趣的小伙伴快来一起学习吧。 个人简介 ☀️大家好!我是新人小白博主朦胧的…

【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

目录问题提出问题重述与再理解第一个问题:假如样本不均衡,哪种分类器的泛化性能较好?第二个问腿:在样本不均衡的情况下,如何获得更健壮的模型问题解决方法样本不均衡对机器学习模型会造成什么影响什么模型适合样本不均…

小黑今天上午着急忙慌实习公司楼下笔试,晚上准备和尚香疯狂星期四明天继续现场笔试的leetcode之旅:1091. 二进制矩阵中的最短路径

小黑代码1 class Solution:def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int:# 一定无解的情况if grid[0][0] 1 or grid[-1][-1] 1:return -1# 矩阵长度n len(grid)# 起点即终点if n 1:return 1# 访问集合seen {(0, 0)}# 初始化队列q collections.…

射频功率放大器在空气耦合超声检测系统中的应用

实验名称:空气耦合超声检测系统研究方向:超声测试设备:ATA-8202射频功率放大器、探头、ATA-5620前置放大器、超声波接收器、数据采集卡、计算机。实验过程:图:空气耦合超声检测锂电池系统锂电池空气耦合超声检测具体过…

TryHackMe-Year of the Dog(Linux渗透测试)

Year of the Dog 谁知道呢?狗咬了一口! 端口扫描 循例nmap Web枚举 进80 用gobuster扫了一圈没有任何发现,图像也没有隐写 在主页的请求头的cookie有一个id 改成其他错误值会导致异常,看见叫id,习惯性加个了引号 爆…

【java】集合类

文章目录集合根接口LIST列表迭代器Queue|Deque|PriorityQueueSet集合HashSetLinkedHashSetTreeSet键盘读入MapHashMapLinkedHashMapStream流stream()ints()Collections工具类集合根接口 所有的集合类最终都是实现自集合根接口的,比如ArrayList类,它的祖先…

走向国际市场,怎样用Facebook广告抢占商机?

在当今全球化的商业世界中,企业要想在国际市场中占据一席之地,除了打造优质产品和服务外,有效的营销手段也是至关重要的。 而Facebook作为全球最大的社交媒体平台,其广告投放服务为企业提供了一个快速、便捷、有效的推广途径。那…

安全校验和框架---JWT和Shrio

安全架构 加密 分类 可逆加密和不可逆加密 不可逆加密:常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384; 可逆加密分为对称加密和非对称加密…

2023最新面试题-Java-5

自定义类加载器 1. 为什么需要自定义类加载器 网上的大部分自定义类加载器文章,几乎都是贴一段实现代码,然后分析一两句自定义ClassLoader的 原理。但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚,因为如果不明白它的作用的情况 …

人工智能动物农场的猪、牛和蟑螂

人工智能动物农场的猪、牛和蟑螂 农业正在成为由人工智能驱动的以数据为中心的业务。中国的大型科技公司正在使用神经网络支持的计算机视觉、可穿戴设备和预测分析算法来重新构想猪、鸡、牛、鹅和蟑螂养殖。 《南华早报》报道称,好医生制药集团每年在中国东南部的四…

OpenHarmony社区运营报告(2023年3月)

目录 本月快讯 一、代码贡献 二、生态进展 三、社区治理 五、社区活动 六、社区及官网运营 本月快讯 • 《OpenHarmony 2022年度运营报告》于3月正式发布,2022年OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源项目潜心务实、深耕发展&am…

优化Key顺序提升ClickHouse查询性能

ClickHouse 键列顺序不仅影响表压缩效果,对查询性能也有很大影响,正确使用键列的顺序可以跳过大粒度数据范围,提高查询效率。本文通过示例进行测试不同场景的查询性能,从而让我们了解如何选择键列及其顺序。 测试数据 首先创建并…

从DY用户页面获取作品列表

最近DY的web端更新比较频繁,所以搞了很多方案来应对更新问题。 本文内容是其中一种方案,从用户主页的HTML响应内容中抽取user信息和作品列表数据。 下图中出现的内容都是在html名为RENDER_DATA的script标签中,以urlencode编码。 比如昵称、粉…

copilot技巧

copilot技巧 csdn排版不太好,推荐notion查看:https://superb-face-6ae.notion.site/copilot-25cf0f9882364056b5c76909b3a66ef9 一些基础原理: 我们想要使用copilot来干嘛呢?来生成代码。 怎样让它生成代码呢?给它一…

【PyTorch】第七节:数据加载器

作者🕵️‍♂️:让机器理解语言か 专栏🎇:PyTorch 描述🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语💓:🐾没有白走的路,每一步都算数&#…

GitHub收藏夹分类列表

前言 GitHub是一个基于Git的国际代码托管网站,其内容质量较高,用户在浏览时经常会收藏他人的项目,当收藏的项目越来越多后,用户再想查找之前特定的收藏项目会非常困难。 因此我们希望分类管理GitHub收藏夹,值得注意的…

Golang每日一练(leetDay0034) 二叉树专题(3)

目录 100. 相同的树 Same Tree 🌟 101. 对称二叉树 Symmetric Tree 🌟 102. 二叉树的层序遍历 Binary Tree Level-order Traversal 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一…