Ohhnews

分类导航

foojay

语言学习卡片系统开发指南:第一部分

本文介绍了构建语言学习卡片系统的基础流程。作者以Spring Boot和MongoDB为核心技术栈,详细阐述了项目创建、数据库连接配置、逻辑模型设计及数据模式定义。文章涵盖了开发生命周期优化、API接口的初步构建、控制器与服务层的集成,以及如何通过合理的架构设计实现卡片与牌组的管理。本篇作为系列文章的第一部分,为后续的功能实现奠定了坚实的基础。
#后端开发#spring boot#mongodb#api设计#应用架构
$ more
Baeldung

使用 Java 将 Word 文档转换为 HTML

概述 本文介绍了如何利用 Apache POI 库在 Java 程序中实现 Word 文档到 HTML 的转换。文章针对现代的 docx 格式和旧版的 doc 格式分别提供了解决方案。 核心内容 依赖配置:需要引入 Apache POI 的相关模块(poi-ooxml, poi-scratchpad)以及 XDocReport 提供的 XHTML 转换器。 docx 转换:利用 XWPFDocument API,结合 XHTMLOptions 和 ImageManager 进行处理,能够较好地处理常规段落和表格。 doc 转换:使用 HWPF API 和 WordToHtmlConverter 处理旧版二进制格式,并需手动配置图片管理器与字符编码。 开发建议:处理大型文档时应注意资源管理,且考虑到复杂格式(如嵌套表格)的渲染差异,建议在生产环境中进行充分的回归测试。
#java#apache poi#文档转换#文件处理#html
$ more
Jetbrains Blog

IntelliJ IDEA 全面支持 Java 26 新特性

Java 26 与 IntelliJ IDEA 集成概览 Java 26 已于 2026 年 3 月 17 日正式发布。本次更新虽不包含新的稳定语言特性,但带来了显著的性能提升、库函数优化以及多项预览功能。IntelliJ IDEA 已实现对 Java 26 的全面支持,开发者可通过项目设置直接下载并配置 JDK。 核心更新内容 稳定特性:包括 AOT 对象缓存(JEP 516)、HTTP/3 支持(JEP 517)、G1 GC 性能优化(JEP 522)以及对 final 字段的严格限制(JEP 500)。 预览与孵化功能:涵盖模式匹配中的基本类型(第四次预览)、延迟常量(第二次预览)、结构化并发(第六次预览)以及 Vector API(第十一次孵化)。 开发建议 开发者可通过调整 IDE 的语言级别(Language Level)来启用预览功能。此外,JetBrains 团队通过贡献 java.util.Comparator 的新方法进一步支持了 Java 生态的发展。建议开发者在 IntelliJ IDEA 中配置相关 VM 参数以充分利用各项新特性。
#java 26#intellij idea#开发工具#软件开发#jdk
$ more
Jetbrains Blog

JetBrains Toolbox App 3.4 发布:新增远程 IDE 生命周期钩子及多项系统修复

版本更新概览 JetBrains Toolbox App 3.4 正式发布,此次更新重点提升了插件开发能力、修复了 macOS 全屏显示问题,并优化了 Windows 环境下的字符编码支持。 核心改进 1. 远程 IDE 生命周期钩子 为插件开发者引入了 API 回调,支持在远程 IDE 启动前后执行自定义逻辑(如预配置环境或清理任务),并支持异步操作。 2. 系统兼容性修复 macOS:解决了在全屏模式下工具箱窗口异常消失的问题。 Windows:修复了用户名包含非 ASCII 字符(如特殊符号或非拉丁字母)时的安装与运行故障。 3. 远程开发稳定性 修复了 Linux 系统下的文件描述符泄漏问题。 优化了 SSH 连接的稳定性,启用了 TCP Keepalive 机制。 4. jetbrainsd 服务优化 优化了守护进程的生命周期管理,并改进了 Linux 环境下的协议链接处理,使其在 WSL 等无完整桌面环境下也能正常工作。
#jetbrains#toolbox app#远程开发#软件更新#开发工具
$ more
Baeldung

使用 Spring 实现读写分离事务路由

本文介绍了如何利用 Spring 框架实现基于事务的数据库路由,通过将写操作发送至主数据库,将只读操作发送至副本数据库,从而有效提升应用性能。核心方案是扩展 AbstractRoutingDataSource 类,并结合 @Transactional 注解的 readOnly 属性来动态选择数据源。文章详细说明了如何配置 LazyConnectionDataSourceProxy 以延迟连接获取,确保事务同步逻辑准确执行,并探讨了在实际应用中需要关注的复制延迟、嵌套事务处理以及多副本负载均衡等工程化考虑因素。
#spring#数据库路由#读写分离#事务管理#数据源
$ more
foojay

OpenJDK Leyden 项目如何提升 Java 性能(第一部分)

项目背景 本文是 OpenJDK Leyden 项目系列文章的第一篇,探讨了 Java 在应用启动、预热及初始内存占用方面存在的性能瓶颈。作者详细解释了 Java 虚拟机(JVM)在冷启动过程中面临的类加载、解析、动态链接及即时编译(JIT)等开销,这些操作导致应用在运行初期性能受限。 核心方案 Leyden 项目旨在通过减少 JVM 的内部管理开销来提升性能。主要思路是利用“训练运行”与“生产运行”相结合的模式: 训练运行:在特定环境下运行应用,缓存元数据、剖析统计信息、堆数据及编译代码。 生产运行:加载预先缓存的信息,使应用能够以“热启动”状态运行,从而缩短达到峰值性能的时间。 注意事项 为了保证缓存的有效性,训练与生产运行需保持硬件、Java 版本、源代码、操作系统及 JVM 配置的一致性。目前部分 AOT(预编译)优化成果已集成至 JDK 25,未来版本将持续增强。
#java#openjdk#leyden#性能优化#jvm
$ more
foojay

OpenJDK Leyden 项目如何提升 Java 性能(第一部分)

Java 性能优化探索 本文是关于 OpenJDK Leyden 项目的系列文章第一篇。Leyden 项目旨在解决 Java 在应用启动、预热及初始内存占用方面表现不佳的问题。文章详细解析了 Java 运行时(JVM)的运作机制,包括类加载、动态链接及即时编译(JIT)带来的性能开销。由于这些“内务管理”工作在程序启动初期会造成显著延迟,Leyden 项目提出通过“训练运行”与“生产运行”相结合的模式,将元数据、分析统计信息及预编译代码缓存至 AOT(Ahead-of-Time)缓存中,从而实现 Java 应用的“热启动”。文章还强调了缓存复用对提升性能的关键作用,并指出了保持环境一致性对于优化效果的重要性。
#java#openjdk#leyden项目#性能优化#jvm
$ more
Jetbrains Blog

JetBrains发布企业级Java AI智能体框架:Koog for Java

JetBrains近日推出了Koog for Java,这是一款专为企业级Java后端设计的AI智能体框架。该框架旨在让开发者无需引入Python微服务或重构代码,即可在现有的Java生态中构建可靠、可观测且容错性强的AI智能体工作流。Koog for Java提供了符合Java习惯的API,支持Spring Boot集成,并兼容主流的大模型提供商。其核心优势包括多种工作流策略(函数式、图形化及规划式)、OpenTelemetry可观测性支持、持久化机制以确保任务在故障后可恢复,以及历史记录压缩功能,有效优化了Token使用成本与性能。
#人工智能#java#软件开发#智能体框架#企业级应用
$ more
foojay

BoxLang 1.11.0 版本发布:性能优化与稳定性提升

BoxLang 1.11.0 版本发布 BoxLang 1.11.0 正式发布,此次更新聚焦于性能与稳定性,无需修改现有代码即可获得显著的速度提升。核心改进包括: 核心亮点 性能优化:通过对字节码生成、类加载、锁机制及类型转换的深度重构,实现了超过 15 项运行时速度优化。 并发稳定性:修复了高并发场景下排他锁(Exclusive Lock)失效的关键漏洞,提升了系统安全性。 日期处理:增强了 DateTime 类型转换的可靠性,修复了多种格式兼容性问题。 开发体验:新增 enforceUDFTypeChecks 配置项以灵活控制类型检查;getTickCount() 新增纳秒和秒级精度支持;新增 ExecutorDelete() 函数用于生命周期管理。 其他更新 MiniServer:支持通过 .boxlang.json 实现项目级配置自动加载,并将 Undertow 升级至 2.3.23.Final。 Web 与 CLI:引入预请求拦截机制,优化了 CLI 报错信息及 --bx-printast 工具,提升了调试效率。 该版本为即插即用型升级,开发者可通过 CommandBox 或 BVM 快速更新。
#boxlang#编程语言#软件开发#性能优化#后端技术
$ more
foojay

Java 26 正式发布:为未来技术演进奠定坚实基础

Java 26 版本正式发布。本次更新的核心目标是为未来的技术发展提供稳固基础。新版本在引入少量新特性的同时,重点进行了性能优化,并包含多项受 Project Valhalla 启发的增强功能。这些改进旨在提升 Java 平台的整体效率与架构灵活性,为后续版本的深度演进做好准备。
#java#编程语言#软件开发#性能优化#project valhalla
$ more