Ohhnews

分类导航

Jetbrains Blog

Toolbox App 3.8:改进 macOS 上的 IDE 更新处理并修复键盘导航

JetBrains 发布 Toolbox App 3.8 版本。该版本恢复了项目与工具列表的键盘导航,Windows 上可用 Ctrl+1 和 Ctrl+2 切换 Tools 与 Projects 标签,并支持方向键、Page Up、Page Down、Home、End 浏览列表。在 macOS 上,即使系统误报 IDE 安装目录不可写,手动 IDE 更新仍保持可用,若被阻止会显示解决说明。此外,清理残留 IDE 目录时现在显示每个工具及整体进度,清理和重新扫描完成前禁用删除控件,避免重复清理。
#jetbrains#toolbox app#ide更新#macos#键盘导航
$ more
Baeldung

解决Jackson反序列化异常:无法从对象值反序列化(缺少委托或属性创建器)

本文介绍Jackson在JSON反序列化过程中抛出InvalidDefinitionException的原因及多种解决方案。当目标类只有带参构造函数、且Jackson无法确定如何将JSON属性映射到构造参数时,就会报出“无法从对象值反序列化(无委托或基于属性的创建器)”错误。文章以Jackson 2.17.2为例复现该异常,并给出修复思路:为可变类添加无参构造函数,由Jackson先实例化再填充属性;对不可变类使用@JsonCreator与@JsonProperty显式声明基于属性的创建器,静态工厂方法同样可以充当创建器;也可以借助ParameterNamesModule或ParanamerModule让Jackson自动发现构造参数名,前者需要以-parameters选项编译,Jackson 3.x已将参数名发现内置并默认启用。Paranamer已停止维护,仅支持Jackson 2.x。
#jackson#java#json反序列化#异常处理#注解
$ more
Baeldung

Java周刊第663期:规范驱动开发与AI智能体记忆架构

本期Java周刊汇总了Spring与Java生态的最新动态。重点内容包括在Java项目中从规范驱动开发走向“活规范”的实践,让规范更贴近代码、保持可测试与可持续演进;另有Curve25519字段运算的Java加速实现、绕过Spring Security调试HTTP 403、自动配置面对缺失可选依赖的测试方法、JVM线程转储脱敏分析等文章,以及Raspberry Pico与Quarkus集成、智能体仓储管理系统等系列内容。技术思考部分,Werner Vogels以人脑为参照,探讨AI智能体记忆机制的设计思路。本周精选为Cloudflare通过优化1.1.1.1的DNS缓存节省100TB内存的案例。版本更新方面涵盖Kotlin 2.4.20、Kotlin工具链0.12、Quarkus维护版本、Spring Tools 5.4.0、Jetty 12.1.13与12.0.39、Vert.x 5.1.8、Elasticsearch 9.5.3以及Micronaut Core多个版本。
#java#spring#软件开发#人工智能代理#技术周刊
$ more
DZone Java

如何在REST-Assured Java中进行API测试响应验证:第2部分

本文是REST-Assured Java API测试响应验证教程的第二部分,介绍如何结合Hamcrest Matchers提升断言可读性与表达力。内容涵盖数值匹配器(greaterThan、greaterThanOrEqualTo、lessThan、lessThanOrEqualTo)、字符串匹配器(equalTo、equalToIgnoringCase、containsString、startsWith、endsWith、equalToCompressingWhiteSpace)、集合匹配器(hasSize、hasItem、hasKey、everyItem(hasKey()))以及使用not()进行负向验证。通过这些匹配器,测试人员可以校验状态码、响应体字段、JSON结构、数组大小、键是否存在及业务规则,从而编写更灵活、易维护的API自动化测试断言。
#rest assured#hamcrest#api测试#响应验证#java
$ more
Baeldung

Jackson 3 新特性解析:架构重构与迁移指南

Jackson 3.0 对这款 Java 生态最流行的 JSON 处理库进行了重大架构重构。最低 JDK 要求从 Java 8 提升至 Java 17,构件 groupId 改为 tools.jackson.core,包名由 com.fasterxml.jackson 迁移至 tools.jackson,使 2.x 与 3.x 可在同一 classpath 共存。ObjectMapper 改为不可变对象,配置须通过 Builder 模式在实例化前完成,解决了长期存在的线程安全问题。JsonProcessingException 被非受检的 JacksonException 取代,简化了 Stream 与 Lambda 中的异常处理。jsr310、jdk8 与参数名三个模块被整合进 jackson-databind,原生支持 Records、Optional 与 java.time。默认行为方面,FAIL_ON_UNKNOWN_PROPERTIES 改为 false,默认启用浮点快速解析,日期时间配置统一为 DateTimeFeature,标准 Bean 命名成为永久默认。JsonNode 树模型新增 ObjectTreeNode 等子类型及更安全的取值方法。迁移需移除废弃 API 并调整导入语句,长期收益显著。
#jackson#java#json处理#架构升级#版本迁移
$ more
DZone Java

大型机上的 Apache Flink 流处理:天才创举还是矩阵故障?

文章探讨在大型机上运行 Apache Flink 的可行性与价值。作者指出,大型机并未消亡,IBM z17 等新系统仍支撑银行、保险和公共部门的关键业务。企业更常采用卸载而非整体迁移,通过 Kafka、CDC 等实现实时数据同步。Flink 作为开源流处理引擎,可在 IBM LinuxONE 上以 OpenShift 容器方式运行,需为 s390x 架构构建镜像并编译 RocksDB 等组件。其优势包括利用闲置算力、就近处理大型机数据、降低硬件和许可成本、简化运维。IBM 基础设施业务增长也表明大型机仍在演进。作者认为,Flink 与大型机结合可为受监管行业构建实时、可靠的关键应用,并非技术倒退。
#apache flink#大型机#流处理#ibm linuxone#金融科技
$ more
Baeldung

Java 26 的 HTTP Client API 新增 HTTP/3 支持

Java 11 引入的 HttpClient API 在 Java 26 中新增了 HTTP/3 支持。HTTP/3 以 QUIC 取代 TCP 作为传输层,将传输与 TLS 1.3 握手合并为一次往返,缩短连接建立时间,在高延迟与移动网络中优势明显;QUIC 的流彼此独立,单个丢包仅影响对应流,其他流不受干扰。开发者可通过 HttpClient.newBuilder().version(HttpClient.Version.HTTP_3) 声明优先使用 HTTP/3,默认版本仍为 HTTP/2,现有代码无需修改。由于 HTTP/3 基于 UDP 的 QUIC,客户端无法像旧版本那样升级现有连接,需通过 HttpOption.H3_DISCOVERY 设置发现模式,可选 ANY(默认)、HTTP_3_URI_ONLY 和 ALT_SVC,其中 ALT_SVC 依赖服务器通过 Alt-Svc 头或 ALTSVC 帧通告 h3 端点。仅在 URI 使用 https 且未走代理时才会真正采用 HTTP/3,否则可能抛出 UnsupportedProtocolVersionException。文中还给出了单元测试示例,分别验证可用端点成功协商 HTTP/3 以及纯 HTTP 端点被拒绝的场景。
#java#http/3#quic#httpclient#网络编程
$ more
DZone Java

如何在Java中正确实现“Sneaky Throws”

文章讨论Java中的“Sneaky Throws”概念,即在未显式声明受检异常的情况下抛出它们,或在不声明受检异常的情况下调用会抛出受检异常的方法,常见做法是使用Lombok的@SneakyThrows注解。作者通过示例类TwoDigitsInteger说明,当getValue()和isValid()声明了受检异常NotSetException时,在stream操作中直接使用方法引用会导致编译错误,而try-catch会降低可读性。为保持流式API简洁,文章定义了ExceptionFunction和ExceptionPredicate两个函数式接口,并提供ExceptionWrapper工具,将受检异常包装为RuntimeException后继续抛出,从而可在map、filter等流操作中使用。示例展示了求和与计数场景的改写。相关代码包含在asentinel-orm开源项目中,也可通过Maven依赖引入。作者认为该方案轻量、易用,但Lombok @SneakyThrows等替代方案也可考虑。
#java#异常处理#sneaky throws#受检异常#函数式编程
$ more
Jetbrains Blog

欢迎参加阿姆斯特丹Zephyr项目线下聚会

Zephyr项目社区将于2026年9月15日在阿姆斯特丹JetBrains办公室举办线下聚会。Zephyr是Linux基金会主持的开源协作项目,社区共同构建面向资源受限与联网设备的小型可扩展实时操作系统。活动免费,但需注册且席位有限。议程包括JetBrains分享如何开始使用Zephyr、利用AFL与Renode对Zephyr固件进行模糊测试、Schematik展示用AI简化项目环境配置与编译烧录、医疗模拟平台从裸机和FreeRTOS迁移至Zephyr的经验及其对嵌入式教育的影响,以及问答、开发板抽奖和自由交流。参与者还有机会赢取Nordic Semiconductor的nRF54L15 Tag。
#zephyr项目#实时操作系统#开源#嵌入式开发#线下聚会
$ more
Spring Blog

Bootiful播客:对话Netflix的Paul Bakker

本期Bootiful播客采访Netflix的Paul Bakker,探讨Java的未来走向。内容涉及Netflix规模化Java的实战经验、利用新版JDK降低成本、以虚拟线程和结构化并发替代响应式编程的复杂性,并展望Java未来,包括AI驱动工具和Valhalla项目。
#java#netflix#虚拟线程#结构化并发#valhalla
$ more