Ohhnews

分类导航

DZone Java

使用Quarkus Agent MCP构建实时感知的AI编码助手

标准AI代码生成工具擅长编写独立代码片段,但在理解运行中应用状态时存在局限。Model Context Protocol (MCP)通过标准化AI与本地工具的交互填补了这一空白。Quarkus提供的独立quarkus-agent-mcp服务器作为始终可用的进程运行,管理quarkus dev会话作为子进程,即使应用崩溃也能存活,允许AI检查编译器输出、诊断错误并执行修复。核心能力包括项目脚手架、生命周期控制、Dev MCP代理和语义文档搜索。通过JBang可快速启动。该服务器还支持“技能先于代码”范式,允许代理读取自定义技能以遵循团队架构标准。实际场景中,它能自动处理数据库迁移失败等崩溃恢复流程。安全性上,服务器完全在本地运行,不发送代码到第三方。该集成将本地开发体验提升到超越基本代码补全的高度。
#quarkus agent mcp#ai编码助手#模型上下文协议#实时调试#自动故障恢复
$ more
Baeldung

从Java代码生成图表

本文介绍三种从Java代码生成图表的方法以应对AI辅助编码后代码审查困难的问题。静态分析工具(IntelliJ内置图表、PlantUML Parser插件、Java2PlantUML)直接从源码或字节码生成类图和依赖图。框架级来源(Spring Modulith、Spring Cloud Stream)利用显式声明的模块边界和数据流作为架构图来源。AI代理方法使用轻量级LLM(如Claude Haiku)在CI流水线或pre-commit钩子中从代码差异自动生成图示与改动总结。文章还提及契约文件(OpenAPI、AsyncAPI、Pact)的补充作用。
#图表生成#uml#代码分析#自动化文档#人工智能
$ more
foojay

AI发现漏洞,谁来修补你的EOL Java代码?

近期,AI模型在OpenBSD的TCP栈中发现了一个存在27年的漏洞,FFmpeg的H.264代码中也发现了16年的旧漏洞。Anthropic的Project Glasswing扫描了1000多个开源项目,标记出超过23000个潜在漏洞,其中约530个高危或严重漏洞已披露,但仅有约75个得到修复。维护者(多为志愿者)请求减慢速度,因为修补一个高危漏洞需要约两周,而AI发现只需数秒。英国国家网络安全中心(NCSC)警告组织应准备应对“漏洞补丁浪潮”,建议默认更新并自动化流程。EOL(生命周期结束)版本的软件,如旧版Java、Spring Boot等,由于上游不再提供补丁,风险尤为突出。Spring生态单月发布67个CVE,其中27个高危。攻击者利用漏洞的速度在提升(CrowdStrike报告显示漏洞在公开前被利用的比例上升42%)。合规要求趋严,如英国Cyber Essentials要求14天内修补关键漏洞。文章建议:清查EOL依赖、对活跃上游的组件启用自动更新、对每个EOL组件做出明确决策(迁移、自修补、采购商业支持或隔离接受风险)、压缩响应时间。补丁浪潮已经来临,尤其是对于无人维护的Java代码。
#ai#开源安全#eol java#漏洞修复#安全合规
$ more
DZone Java

告别if-else意大利面条式代码:使用策略模式构建更简洁的Java架构

本文探讨了在Java企业应用中,业务逻辑如何容易退化成耦合紧密的if-else意大利面条式代码,导致难以测试和维护。作者以药房理赔折扣计算为例,展示了传统过程式实现的弊端。随后提出了两种策略模式重构方案:一是利用Java枚举结合函数式接口实现轻量级、无状态的策略路由,通过静态缓存映射优化性能;二是借助Spring依赖注入,将复杂的、有状态的校验逻辑封装为独立的组件策略,并通过动态注册表实现灵活调度。文章还讨论了避免Enum.values()性能陷阱、解耦后易于单元测试、以及单例Bean的线程安全等生产级工程考量。最后通过架构矩阵对比,展示了策略模式在可读性、可扩展性、测试便捷性和性能方面的优势,倡导将业务规则封装为可互换的策略模块,以构建真正面向变化、可扩展的企业级系统。
#策略模式#java#设计模式#代码重构#软件架构
$ more
foojay

Azul Zulu 2026年7月季度更新发布

Azul 发布了 2026 年 7 月 Azul Zulu Builds of OpenJDK 的季度更新,覆盖 Java 26、25、21、17、11、8、7 和 6 版本。本次更新提供关键补丁更新 (CPU) 和补丁集更新 (PSU) 两种版本,修复了 18 个 CVE(其中 4 个为高危)。主要变化包括:Zulu 8 移除 Lucida Monotype 字体;CRS 代理退役,由 Azul Intelligence Cloud 代理替代;Java 25 向后移植后量子混合密钥交换 (JEP 527);新增证书吊销列表大小限制属性;支持 Ubuntu 26.04 和 SLES 15,放弃 CoreOS;CRaC 新增自动检查点功能并移除旧选项。建议团队尽快测试并部署 CPU 更新以修复安全漏洞,后续再迁移至 PSU 版本。
#azul zulu#openjdk#季度更新#安全补丁#java版本
$ more
Jetbrains Blog

RustRover 2026.2 支持 Axum:更快构建 Web 后端

RustRover 2026.2 版本新增对 Axum 框架的原生支持。Axum 是 Rust 生态中最流行的 Web 框架之一,基于 Tokio,具有无宏路由、提取器和 Tower 中间件等特性。新版本 IDE 提供路由导航、HTTP 方法内联提示、端点间跳转以及 Reqwest 调用生成功能,显著提升开发效率。Axum 已被 crates.io、Cloudflare Workers、Lichess 等生产环境广泛采用。
#rustrover#axum#rust#web后端开发#路由导航
$ more
foojay

2026年7月Azul Payara版本更新内容

Azul发布了2026年7月的Payara产品线更新,涵盖多个版本:7.2.0、社区版7.2026.7、6.40.0、5.89.0以及4.1.2.191.57。本次更新围绕一个跨所有版本的反暴力破解身份验证安全补丁展开,该补丁源自Eclipse GlassFish项目并回移植到Payara。此外,Enterprise 6.40.0修复了两个Jackson相关的CVE漏洞。Payara 7.2.0作为Jakarta EE 11认证版本,支持Web Profile和Core Profile,并整合了MicroProfile 6.1。社区版7.2026.7简化了SSH节点配置,移除了EclipseLink MoXY。6.40.0继续维护Jakarta EE 10和MicroProfile 6.1,5.89.0保留javax.*命名空间兼容Java 8,4线仅提供安全补丁。Azul建议用户升级至对应分支的最新版本以获得安全防护。
#azul payara#安全更新#版本发布#java服务器
$ more
Jetbrains Blog

代码覆盖率:如何测量、理解指标并改进你的测试

什么是代码覆盖率? 代码覆盖率衡量测试执行过程中代码被执行的比例,帮助发现未被测试的代码路径。文章介绍了行覆盖率、分支覆盖率、条件覆盖率、路径覆盖率等核心指标,并指出不同指标适用于不同场景。 如何测量代码覆盖率? 通过代码插桩、运行自动化测试、收集数据、生成报告四步实现。支持JaCoCo、Istanbul、Coverage.py等工具,并可与Qodana集成。 改进代码覆盖率的实践 利用报告识别高风险低覆盖区域(如支付、认证模块)。 优先编写单元测试覆盖复杂逻辑。 重构高复杂度函数以提升可测试性。 对第三方集成使用依赖注入和Mock。 在CI中设置覆盖率检查,防止回归。 常见误区 片面追求100%行覆盖率而忽略断言质量。 将覆盖率作为绩效指标,导致表面测试。 对生成代码和框架胶水代码强行要求覆盖率。 结论 80%行覆盖率是行业常见目标,但应结合分支覆盖率和测试质量。代码覆盖率是质量保障的工具之一,需要与静态分析和生产监控配合使用。
#代码覆盖率#测试指标#软件质量#分支覆盖率#qodana
$ more
Spring Blog

精彩播客:Java开发者倡导者Billy Korando畅谈Java 27及未来

播客概述 在本期节目中,主持人邀请了Java开发者倡导者Billy Korando,共同探讨即将发布的Java 27的令人激动的新特性。节目录制于主持人飞往旧金山参加Java纪录片全球首映的前一天,主持人表达了强烈的期待与兴奋。整个对话充满激情,回顾了Java语言对开发者和世界的影响。
#java#java 27#播客#开发者#纪录片
$ more
Jetbrains Blog

ReSharper C++ 2026.2发布:支持C++26反射、ISPC语言及更多功能

ReSharper C++ 2026.2正式发布,主要新增对C++26反射的初步支持,包括反射操作符和拼接语法;同时引入ISPC语言支持,为高性能并行编程提供语法高亮、代码分析及导航。该版本还显著提升了Unreal Engine项目的索引速度,蓝图的索引速度提升达40%。其他改进包括constexpr求值器支持动态内存分配和异常,新增内部链接检测、指定初始化器建议等代码分析功能,以及内联函数、提取方法等重构增强。此外,还首次集成Junie作为ACP代理支持。
#resharper c++#c++26反射#ispc语言支持#unreal engine#代码分析
$ more