IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6

简介: 它变快了,也变强了

在这里插入图片描述

本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏

你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title Link
所属专栏 【方向盘】-IntelliJ IDEA
源代码 https://github.com/yourbatman/FXP-java-ee
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 https://wangpan.yourbatman.cn
Java开发软件包(Mac) https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit
女娲工程 http://152.136.106.14:8761
版本约定 [Mac OS 12.5],[IntelliJ IDEA 2022.2]

📚前言

它来了,它又来了。新版IDEA如约而至:2022年7月26日IntelliJ IDEA 2022.2正式发布。吃肉之前,可先把这之前系列的汤喝了,每篇都很顶哦:

诚然,我特别喜欢软件追新,每次macOS、Spring Boot、Spring Framework、IntelliJ IDEA发布大、中型版本,我本人都第一时间升级,然后使用几天后写篇文章介绍体验,分享给大家。

当然,越到后面可能觉得越写不动,自己升级归升级,分享出来就没那么多精力

不得不说,每次看到新的启动图就焕然一新之感,就是这么喜新厌旧:
在这里插入图片描述
弱弱评论一句,本启动图相较于上个版本(2022.1)变化挺小,设计师偷懒?

✍正文

官网对本次更新的概要性总结:IntelliJ IDEA 2022.2 为远程开发功能带来了多项质量改进,使其更美观、更稳定。 从 v2022.2 开始,IntelliJ IDEA 使用 JetBrains Runtime 17,后者可以从多方面增强 IDE 体验和性能。 IntelliJ IDEA Ultimate 添加了对 Spring 6 和 Spring Boot 3 功能的支持,也为多个其他框架引入了更新。 新版本还具有多项值得注意的升级和改进。

🌈what’s new(新特性)

老规矩,将我们关心的功能一一枚举。

🚀支持Spring 6和Spring Boot 3

Spring Boot 3已来到M4版本,举例正式版发布仅4个月左右。本次大版本号的升级,改变主要总结为两句话:

  1. 功能与Spring Boot 2.x(当然指的最新版2.x)基本保持不变
  2. 依赖大幅升级(阻断式升级)

    1. 最低要求Java 17
    2. 最低要求Spring Framework 6
    3. Maven最低要求3.5.x,Gradle最低要求7.3.x
    4. 彻底启用Java EE,改用最低依赖Jakarta EE 9(关于Jakarta EE,这篇值得一读:【方向盘】认为:开发者已无理由再用Java EE
    5. 删除一些依赖项,如:Apache ActiveMQ、Atomikos、EhCache 2、HazelCast 3、Jersey等等

既然Spring Boot 3并没有显著的功能变化,那这次新版IDEA指的“支持Spring 6和Spring Boot 3”什么意思呢?先来看官网的解释:支持新的@AutoConfiguration类和@ConfigurationProperties类,涵盖新的构造函数绑定语法,无需显示@ConstructorBinding

🚩新的@AutoConfiguration

真相是@AutoConfiguration是Spring Boot 2.7.x新增的注解:
在这里插入图片描述
在我这篇文章有详细说明:【方向盘】Spring Boot 2.7.0正式发布,弃用OkHttp 3、弃用spring.factories机制。还记得我这这篇文章里的语言吗?有截图为证哦:
在这里插入图片描述

这不,让我将IDEA升级到2022.2后,支持鼠标点击跳转了:
在这里插入图片描述

🚩无需显示标注@ConstructorBinding

这是Spring Boot 3.0之前:
在这里插入图片描述Spring Boot 3.0版本:此注解只允许标注在构造器,不能再标注在类上了
在这里插入图片描述
多说一嘴:@ConstructorBinding注解和@Component(及派生注解)不能一起使用。只能通过@EnableConfigurationProperties(Xxx.class)启用。其中原因,有点Spring Boot基础的同学应该不难解释吧,评论区秀一秀?

在老版本的IDEA中若没有标注@ConstructorBinding会飘红(但运行时不会有问题),升级到新版IDEA后,就清爽多了。

🚀 JBR 11升级到JBR 17

在这里插入图片描述
JBR:JetBrains Runtime。从此版本起,依赖Java 17,从而IDE的性能显著提升。同时,得益于苹果公开的Metal API,macOS上的渲染能力进一步得到提升。

什么是Metal API?它是Apple平台提供低开销 API、丰富的着色语言、图形和计算之间的紧密集成以及无与伦比的 GPU分析和调试 工具套件,为 Apple平台上的硬件加速图形提供支持

用mac的老铁,不用犹豫了,升吧

🚀 运行当前文件

在这里插入图片描述
这个功能还是蛮香的,对效率提升有帮助。

之前运行/启动程序一般使用“运行上一次”的快捷键(或者鼠标点击启动按钮),但这种方式有个弊端:当切换文件想运行一个另一文件里的新入口时,这时就不得不使用到鼠标进行入口定位了(当然也有运行当前file的快捷键)。

现在,不用了!新版本IDEA支持自动定位(如上图,选中Current File):在当前文件内运行,就会自动帮你定位到当前文件的main方法入口,跟家方便了。

🚀 针对Java语言更好的代码检查和自动补全

这个特性其实不用特别的举例,在使用过程中慢慢发现就好。不过个人有个建议或许你可参考:优秀的程序员追求代码的质量,从敬畏警告开始

Tips:建议在IDEA开启sonar实时检查,它会教你做人(不对,教你写代码)

🚀 更强的性能分析器

在这里插入图片描述
在这里插入图片描述
这个功能在本系列之前文章中有过详细介绍,这里就不再赘述了。

PS:此功能从实验性走到现在正式发布,已值得信赖,可以用来做性能分析用。在本地使用,非常高效

它不仅仅支持Java语言,Kotlin、Scala都是可以分析的~

🚀 其它

  • 对最新的Kotlin 1.7.0新功能的支持
  • 改进IDE对Kotlin的性能(含代码高亮、补全、查找等)
  • 对Scala 3支持更好
  • 支持Groovy 4语法高亮
  • 支持Spring 6中新声明式 HTTP 客户端
  • 支持Spring Cloud Gateway路由的 URL 补全和导航
  • 更好的支持Spring Shell
  • JSON、YAML 和 .properties字符串值中若是URL可以点击了
  • 改进对Bean Validation的支持:更好的提示、补全
  • 支持最新的Jakarta Persistence 3.1
  • 提供对Vue 3、Angular、TypeScript 4.7更好的支持

✍总结

本次IDEA中型版本更新,最吸引我的是:更流畅,它变快了,也变强了。同时支持Spring Boot 3和Spring 6也让能助我更好的体验新特性。

升级建议:单凭它变得更流畅这一点,mac用户无脑升就对了。

PS:windows用户虽然没有Metal API,但理论上流畅度上也有所提升(毕竟切JBR 17了嘛)

推荐阅读

在这里插入图片描述

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号 专栏名称 简介
01 【方向盘】-程序人生 程序人生,人生程序
02 【方向盘】-资讯/新特性 IDEA、JDK、Spring技术栈......新特性
03 【方向盘】-IntelliJ IDEA 熟练使用IDEA就相当拥有物理外挂,助你高效编码
04 【方向盘】-Bean Validation 熟练掌握数据校验,减少90%的垃圾代码
05 【方向盘】-日期时间 帮你解决JDK Date、JSR 310日期/其实 的一切问题
06 【方向盘】-Spring类型转换 Spring类型转换-框架设计的基石
07 【方向盘】-Spring static static关键字在Spring里的应用
08 【方向盘】-Cors跨域 关于跨域请求问题,本专栏足矣
09 【方向盘】-Jackson Almost Maybe是最好的Jackson专栏
10 【方向盘】-Spring配置类 专讲@Configuration配置类,你懂的
11 【方向盘】-Spring技术栈 暂无所属小分类的,Spring技术栈大分类
12 【方向盘】-JDK 暂无所属小分类的,JDK技术栈大分类
13 【方向盘】-Servlet Servlet规范、Web相关内容专题
14 【方向盘】-Java EE 从Java EE到Jakarta EE,30年弹指一挥间
15 【方向盘】-工具/提效 开发工具、软件工具,目标是提效
16 【方向盘】-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17 【方向盘】-基本功 每个Javaer,都需要有扎实的基本功
... ... ...
99 源代码库 大多数专栏均配有源代码,都在这里
目录
相关文章
|
3月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
138 0
|
3月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
135 0
|
3月前
|
NoSQL Java 关系型数据库
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
本文介绍在 Spring Boot 中集成 Redis 的方法。Redis 是一种支持多种数据结构的非关系型数据库(NoSQL),具备高并发、高性能和灵活扩展的特点,适用于缓存、实时数据分析等场景。其数据以键值对形式存储,支持字符串、哈希、列表、集合等类型。通过将 Redis 与 Mysql 集群结合使用,可实现数据同步,提升系统稳定性。例如,在网站架构中优先从 Redis 获取数据,故障时回退至 Mysql,确保服务不中断。
133 0
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
|
3月前
|
Java 数据安全/隐私保护 微服务
微服务——SpringBoot使用归纳——Spring Boot中使用监听器——Spring Boot中自定义事件监听
本文介绍了在Spring Boot中实现自定义事件监听的完整流程。首先通过继承`ApplicationEvent`创建自定义事件,例如包含用户数据的`MyEvent`。接着,实现`ApplicationListener`接口构建监听器,用于捕获并处理事件。最后,在服务层通过`ApplicationContext`发布事件,触发监听器执行相应逻辑。文章结合微服务场景,展示了如何在微服务A处理完逻辑后通知微服务B,具有很强的实战意义。
82 0
|
3月前
|
缓存 Java 数据库
微服务——SpringBoot使用归纳——Spring Boot中使用监听器——监听器介绍和使用
本文介绍了在Spring Boot中使用监听器的方法。首先讲解了Web监听器的概念,即通过监听特定事件(如ServletContext、HttpSession和ServletRequest的创建与销毁)实现监控和处理逻辑。接着详细说明了三种实际应用场景:1) 监听Servlet上下文对象以初始化缓存数据;2) 监听HTTP会话Session对象统计在线用户数;3) 监听客户端请求的Servlet Request对象获取访问信息。每种场景均配有代码示例,帮助开发者理解并应用监听器功能。
109 0
|
3月前
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——常见问题总结
本文总结了Spring Boot中使用事务的常见问题,虽然通过`@Transactional`注解可以轻松实现事务管理,但在实际项目中仍有许多潜在坑点。文章详细分析了三个典型问题:1) 异常未被捕获导致事务未回滚,需明确指定`rollbackFor`属性;2) 异常被try-catch“吃掉”,应避免在事务方法中直接处理异常;3) 事务范围与锁范围不一致引发并发问题,建议调整锁策略以覆盖事务范围。这些问题看似简单,但一旦发生,排查难度较大,因此开发时需格外留意。最后,文章提供了课程源代码下载地址,供读者实践参考。
65 0
|
3月前
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——Spring Boot 事务配置
本文介绍了 Spring Boot 中的事务配置与使用方法。首先需要导入 MySQL 依赖,Spring Boot 会自动注入 `DataSourceTransactionManager`,无需额外配置即可通过 `@Transactional` 注解实现事务管理。接着通过创建一个用户插入功能的示例,展示了如何在 Service 层手动抛出异常以测试事务回滚机制。测试结果表明,数据库中未新增记录,证明事务已成功回滚。此过程简单高效,适合日常开发需求。
170 0
|
3月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——事务相关
本文介绍Spring Boot事务配置管理,阐述事务在企业应用开发中的重要性。事务确保数据操作可靠,任一异常均可回滚至初始状态,如转账、购票等场景需全流程执行成功才算完成。同时,事务管理在Spring Boot的service层广泛应用,但根据实际需求也可能存在无需事务的情况,例如独立数据插入操作。
42 0
|
3月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
112 0
|
1月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
156 27