Ohhnews

分类导航

DZone Java

在Neo4j中嵌入Wasm:构建此前并不存在的可行实例

本文介绍了如何在Neo4j的Java UDF中嵌入wasmtime运行时,把用Rust编写并编译为Wasm的VADER情感分析模块直接运行在数据库JVM进程内,无需外部API调用与网络往返。作者使用社区JNI绑定wasmtime-java,配合wit-bindgen生成的字符串调用约定,通过Cypher函数返回包含compound、positive、negative、neutral四个分值的情感极性映射。文中详述了工具链版本要求、项目结构、用wasm-objdump检查Wasm二进制的技巧,以及Java与Wasm内存交互的细节,并指出返回tuple时ABI会从直接返回值切换为间接结果指针,因此编写Java封装前必须先检查生成的二进制。实测验证了正向语句、大小写敏感与空字符串兜底三种情况均正确。作者强调该方案适合低频工作负载,高吞吐场景应复用Wasmtime引擎与已编译模块。完整源码已在GitHub开源。
#neo4j#webassembly#情感分析#java udf#wasmtime
$ more
DZone Java

第三部分:Goose、agentgateway与Quarkus的端到端追踪与可观测性

本文是系列教程的第三部分,讲述如何在Goose、agentgateway与Quarkus三层架构中实现端到端分布式追踪与可观测性。文章以Acme FinServ满足SOC 2 CC7系统监控要求为背景,指出智能体工作流涉及多次跨进程调用,缺乏追踪时难以还原异常行为。方案基于W3C Trace Context标准:agentgateway为每个代理的MCP请求导出span并向下游注入traceparent头,Quarkus通过quarkus-opentelemetry扩展读取该头并生成子span(HTTP请求、CDI工具执行、Bean校验),两者统一导出至Jaeger,形成从智能体提示到工具结果的单一追踪瀑布图。文中给出Jaeger启动、Quarkus与agentgateway配置、命令行生成追踪、在Jaeger中查看瀑布图等完整步骤,并对比了生产环境建议,如改用Grafana Tempo、调整采样率、配置告警与RED指标。
#分布式追踪#可观测性#opentelemetry#mcp#quarkus
$ more
Baeldung

Java周报第666期:JDK 27性能提升与JDK 28新特性

本期Java周报聚焦JDK 27的性能改进,涵盖HashMap操作、加密与向量化等领域的实测提升,并分析了在同一JVM中运行负载生成器对尾延迟测量的干扰问题。JDK 28方面,JEP 541计划弃用macOS/x64端口,JEP 539引入JVM严格字段初始化预览特性。此外还介绍了Kotlin 2026年度报告、使用Quarkus Desktop构建AWT与Swing桌面应用、借助MySQL JSON双视图构建AI友好的Java应用,以及Spring AI 2.1.0-M1、Quarkus 3.40.1、Micronaut Core 5.2.10、JobRunr 9等版本更新。技术思考部分比较了基于重放的工作流编排与检查点作业的取舍,本周精选为Martin Fowler的《Monolith First》。
#java#jdk#spring#kotlin#性能优化
$ more
Spring Blog

Spring AI 模块化 RAG 与 TypeSafe Jev:多检索,只保留能回答问题的内容

本文介绍如何将 Spring AI 的模块化 RAG 与 TypeSafe Jev 结合,构建可插拔的检索增强生成流水线。检索前先用 LLM 重写并扩展用户问题,再通过向量库并行检索;检索后由 JevDocumentFilter 和 JevDocumentReranker 对每个片段分类、过滤和重排,剔除仅主题相似但没有答案或缺乏证据的内容,并识别提示注入。示例以飓风米尔顿 PDF 问答展示:原始噪声查询被改写为多个搜索查询,6 个片段经 Jev 筛选后仅保留 2 个能回答的片段,最终模型给出简洁答案。作者提醒需配置 TaskExecutor、注意 Claude 模型温度限制,且 Jev 组件故障时会放行文档。
#spring ai#rag#jev#检索增强生成#文档重排
$ more
foojay

Azul Zing Builds of OpenJDK 26.08 版本更新内容一览

Azul 发布 Zing Builds of OpenJDK 26.08 稳定版本线,将 2026 年 4 月至 8 月的 Stream 构建成果合并为单一受支持的版本。最引人注目的新功能是编译流(Compilation Streaming),JVM 可在启动时从 Azul Optimizer Hub 下载预编译代码流,而无需等待自身的 JIT 编译队列,从而显著缩短预热时间。该版本还纳入 2026 年 4 月和 7 月的 CPU/PSU 安全修复,并推出 Azul Zing 历史上首个关键安全补丁更新(CSPU),可在季度更新之间提供安全与稳定性修复且不引入新功能或行为变化。其他改进包括轻量级锁对线程本地 monitorenter/monitorexit 的支持、ARM64 上默认启用标记地址、JDK 25 支持 ZlibNG、Metaspace 内存池 MXBean 可选启用、ThreadOpt 弃用、运行时包体积精简,以及优化器中心本地回退方法在云端编译器恢复后按目标优化级别重新编译等。多层级编译的三项命令行参数由实验性转为正式产品状态,但该功能默认仍处于关闭。GC 日志与 Falcon 编译器也获得多项修复与新增选项。26.08.1.0 支持 OpenJDK 8、11、17、21 和 25。
#azul zing#openjdk#java#编译流#jvm优化
$ more
Jetbrains Blog

JetBrains 在 IDE 中推出 Air 智能体开发体验,早期访问计划开放

JetBrains 宣布在 JetBrains IDE 中启动 Air 的早期访问计划(EAP),用户可通过 JetBrains Marketplace 插件或 2026.3 EAP 版本原生体验。Air 是面向智能体开发的开放产品体系,本身并非 AI 提供商,也不预装任何智能体,而是把用户已有的 Codex、GitHub Copilot、Junie、Cursor 等 ACP 兼容智能体接入 IDE。其三大原则是:引入现有智能体、为开发者与智能体提供 IDE 智能能力、打造以智能体为核心的交互体验。Air 支持多智能体并行工作,会话集中展示并显示用量成本,双击 Ctrl 即可附带当前上下文新建任务,可选择编辑器标签页、终端或图形聊天界面,并支持云端运行与临时工作树隔离。使用自有智能体无需 JetBrains AI 订阅,数据直接发送给所选服务商而不经过 JetBrains,禁用插件即可完全关闭。JetBrains 同时提供免费的 Junie Lite 供用户体验。
#jetbrains#智能体开发#ide#编程助手#早期访问计划
$ more
Jetbrains Blog

RustRover 与 VS Code + rust-analyzer:Rust 工作流差异对比

JetBrains 发布文章比较 RustRover 与 VS Code + rust-analyzer 两种 Rust 开发环境。VS Code 是通用编辑器,通过 rust-analyzer 扩展提供 Rust 补全、诊断、导航和重构;配置灵活,可扩展任务、启动配置和调试器。RustRover 是专业 Rust IDE,使用 JetBrains 自研分析引擎并集成 Cargo 项目模型,内置测试、调试、重构、数据库和版本控制等支持。文章对比二者在代码分析、导航、运行 Cargo、测试、调试、检查和重构方面的差异,也介绍 AI 辅助开发能力。RustRover 适合希望在同一项目模型下使用完整工具链的开发者,VS Code 更适合偏好轻量、自定义多语言环境的用户。文中还提供从 VS Code 迁移到 RustRover 的五步指南。
#rustrover#vs code#rust-analyzer#rust 开发#ide
$ more
foojay

为什么集群中的每个JVM都要独自预热

文章探讨为何JVM集群中的每个实例都必须独立完成预热。JIT编译产出的机器码并非字节码的简单翻译,而是针对特定JVM某一时刻状态的“下注”,因此无法仅凭方法全限定名直接复制使用。要迁移已编译代码,必须解决三大难题:身份识别(类名并非唯一标识,需结合类加载器,并从已知实体逐级推导句柄)、有效性验证(每个方法包含数千条依赖假设且须全部成立,同时验证成本必须远低于本地重新编译)、盈利性(代码可能完全正确却不适合当前实例,因为编译代码还包含行为统计假设,而新实例尚无性能画像)。作者指出Project Leyden通过提前生成AOT缓存来规避部分问题,而另一方案则尝试将生产环境JVM中正在运行的编译代码流式传输到仍在启动的实例。本文为系列第一部分。
#jvm#jit编译#虚拟机预热#java性能#aot缓存
$ more
Spring Blog

Bootiful 播客:JReleaser 创建者、Java 冠军 Andres Almiray 访谈

本期 Bootiful 播客中,主持人对话 JReleaser 创建者、Java 冠军 Andres Almiray,畅谈桌面 Java 的未来、Electron 的痛点与 JavaFX 的优雅,以及让 Java 应用更易交付的工具链。对话重点介绍 JReleaser:它可帮助 Java 项目发布版本、打包原生安装器、生成分发包、计算签名与校验和、向社交平台发布公告,并自动化 GitHub、GitLab、Maven Central 等平台的发布流程。两人还讨论 JReleaser 如何与 JLink、JPackage 配合,为何成为 JBang 等项目的关键工具,以及它如何让 Java 分发重新变得现代。适合关注软件打包、发布和开发者体验的听众。
#jreleaser#java#javafx#桌面开发#软件发布
$ more
foojay

Lathe:直接基于Maven构建工作的Java语言服务器

Lathe 是由开发者 Alexey Gavrilov 打造的开源 Java 语言服务器,采用 Apache 2.0 许可。它不再通过读取构建文件去猜测项目结构,而是借助 Maven 构建扩展在构建过程中直接捕获类路径、模块路径、注解处理和测试配置,并在每次构建时自动刷新,从而保证编辑器与真实编译结果始终一致。功能覆盖代码智能(自动导入补全、跳转定义与声明、查找引用、调用与类型层次、符号搜索、签名帮助、Javadoc 悬浮提示、语义高亮等)、诊断与重构(javac 错误警告、未使用成员提示、快速修复、google-java-format)、运行测试与调试,以及类、接口、记录、枚举等代码脚手架生成。目前支持 Neovim(客户端最完整)和 Emacs(内置 Eglot),VS Code 客户端在规划中。使用需 Java 21+ 与 Maven 3.x,初始化只需注册扩展、执行一次构建并配置编辑器。
#lathe#java语言服务器#maven#lsp#开源工具
$ more