Ohhnews

分类导航

foojay

迈向持久化的Spring PetClinic:识别适合持久执行的工作流候选

本文介绍了持久化执行(Durable Execution)的概念,并以Spring PetClinic示例应用为例,分析其中适合改造成持久化流程的候选。通过两次分析(普通Claude Code和基于Temporal的Claude Code),作者一致推荐优先将“预约就诊+提醒”流程改造为持久化工作流,因为它包含长期运行定时器、可重试副作用和精确一次语义。文章还列出了其他四个候选(宠物注册、账单支付、所有者注册、兽医数据同步)及对应Temporal原语的映射。
#spring petclinic#持久化执行#temporal#工作流分析#预约提醒
$ more
Baeldung

Java周刊第655期

本期Java周刊重点涵盖以下内容:利用编码助手探索遗留系统并重构架构的实践;虚拟线程固定问题的现场指南;使用OPA策略在Quarkus LangChain4j中实现安全护栏;事件驱动架构的适用性分析。在技术深度方面,Netflix分享了构建服务拓扑平台的架构挑战与经验。此外,多个框架发布新版本,包括Quarkus 3.37.3、Vert.x 5.1.5、JHipster v9.2.0等。Baeldung夏季促销正在进行中。
#java#spring#软件架构#技术周刊#ai辅助编程
$ more
Baeldung

解决Hibernate AnnotationException:非法尝试映射非集合

问题概述 当使用 Hibernate 的 @OneToMany、@ManyToMany 或 @ElementCollection 注解时,字段类型必须是集合接口(如 List、Set、Collection),而非具体实现类(如 ArrayList)。否则会导致 org.hibernate.AnnotationException 启动失败。 解决方案 声明字段时使用集合接口类型,而非具体类。例如:private List<Comment> comments = new ArrayList<>(); 即可避免异常。 另一种常见错误 将集合注解错误地应用于单个引用字段(如将 @OneToMany 用于单个 Post 字段),应改用 @ManyToOne 或 @OneToOne 匹配正确基数。
#hibernate#java异常#orm映射#集合注解#实体关系
$ more
DZone Java

动态API翻译中的缓存践踏问题:Java 21虚拟线程解决方案

本文提出raqs动态代理架构,利用Java 21虚拟线程处理高并发,通过“英雄线程”模式与Redisson分布式锁避免缓存践踏。采用混合语义-词法评分减少误映射,实现冷启动推理代价隔离,稳态延迟低于15ms,为API版本演进提供无侵入方案。
#api版本管理#java 21虚拟线程#缓存践踏#分布式锁#混合语义评分
$ more
foojay

我们如何击败HotSpot性能(通过合理的手段)

ParparVM通过一系列深度优化,将其性能从比热身后的Java 25慢4.21倍提升至几何平均1.00倍,在10个基准测试中有6个达到或低于HotSpot。峰值内存消耗从1.4-2.1GB降至290-390MB,空闲内存仅2.4MB。核心架构包括:无框架C代码生成、基于BiBOP页堆的分配器、分散式边界检查、逃逸分析和标记整数(消除装箱开销)。该VM为AOT编译,适用于iOS等无法使用JIT的平台。文章详细描述了优化过程中的权衡,以及为何在递归和算术循环上仍略逊于HotSpot的JIT。
#性能优化#aot编译器#内存管理#java虚拟机#基准测试
$ more
DZone Java

AGENTS.md:让你的Java代码库为AI代理就绪

AGENTS.md是一种新兴的开放标准,专为AI代理设计,置于仓库根目录,提供可执行的运行时指令层。文章结合Quarkus框架,展示了如何通过AGENTS.md定义操作命令、架构边界(如响应式vs阻塞代码)和基础设施管理(强制使用Quarkus Dev Services)。提供了完整模板和实验对比,证明AGENTS.md能显著提升AI代理在Java企业代码库中的代码生成质量与开发效率。
#agents.md#quarkus#ai代理#java开发#代码标准化
$ more
Jetbrains Blog

Kotlin迎来15周年:庆祝Kotlin效应

庆祝Kotlin诞生15周年 JetBrains 庆祝 Kotlin 编程语言发布15周年,感谢全球开发者社区的支持。官方推出多项庆祝活动:用户可制作数字生日贺卡并分享寄语;通过浏览器游戏体验 Kotlin 消除开发摩擦的理念;此外,Hyperskill 上的部分 Kotlin 课程将免费开放至2026年9月9日。
#kotlin#15周年#编程语言#开发者社区#jetbrains
$ more
Jetbrains Blog

PhpStorm 2026.2 正式发布

版本概述 PhpStorm 2026.2 正式发布,重点增强了 AI 功能:原生支持第三方 AI 提供商、集成 GitHub Copilot 代理、引入代理技能管理器以自动复用领域知识。PHP 方面新增 #[FileReference] 属性用于持久化文件引用,并支持 PER Coding Style 3.0;Laravel 新增专用工具窗口,支持项目管理、错误查看与云部署。版本控制改进包括简化 Git worktree 管理、一键解决简单冲突、代码评审用户名补全。终端支持拖拽文件插入路径和粘贴图片。数据库工具重做空状态、自定义查询控制台名称、优化颜色系统。此外,支持 TypeScript 7 以获得更快类型检查,Docker Compose 文件内显示容器状态,并提供 Terraform 测试框架支持。性能方面重点优化索引速度,为后续发布奠定基础。
#phpstorm#php#laravel#ai#git
$ more
foojay

快速热身,精益运行:使用Azul Prime和Kedify在Kubernetes上对Java进行垂直扩展

概述 文章探讨了Java应用在Kubernetes环境中的热启动(Warm-up)问题及解决方案。传统基于CPU/内存的被动弹性伸缩存在滞后性,无法满足JVM启动时JIT编译的突发CPU需求。作者提出一种生命周期感知的垂直扩展模式:在JVM启动阶段分配更多CPU资源,待优化完成后自动缩减至稳态配置。 核心技术 Azul Prime JVM:通过JMX暴露编译队列深度(TotalOutstandingCompiles),配合finishWarmup方法动态调整内部线程池,实现资源变化后的自适应。 Kedify PodResourceProfile:利用Kubernetes 1.33+的原位Pod资源调整能力,定义基于容器就绪事件的资源变更策略,无需重启即可升降CPU配额。 实现流程 部署时分配高初始CPU(如10核)加速JIT编译。 使用JMX探针检测编译进度,就绪前阻止流量进入。 编译完成后(队列深度低于阈值),通过PodResourceProfile自动将CPU降至稳态值(如4核),回收约60%容量。 效果与整合 该模式缩短了启动延迟、提升了稳态效率,并与水平扩展(基于请求率等主动指标)协同工作。实际演示使用Renaissance基准测试展现了显著的资源节省和性能改善。
#java#kubernetes#垂直扩展#jit编译#云原生
$ more
Jetbrains Blog

PHPverse 2026 大会主要收获

2026年6月9日,PHPverse 2026 大会通过线上直播汇聚了不同背景的PHP开发者。五小时直播累计观看1.5万次,实时聊天评论超1万条,峰值同时在线2600人。演讲涵盖AI代理对PHP开发的影响、Symfony项目维护、WordPress与Drupal的现代化变革、Composer依赖安全以及PHP基金会的未来计划。多位演讲者指出AI代理正在改变代码生成、项目维护和贡献方式,同时安全威胁日益严峻;现代PHP框架已具备AI就绪特性,社区协作与安全防护成为关键议题。
#php#ai代理#安全性#社区协作#现代化开发
$ more