Ohhnews

分类导航

DZone Java

2026年企业级Agentic AI开发:Java技术栈的应用实践

核心摘要 随着Agentic AI从实验原型转向企业生产环境,Java凭借其强类型安全、高性能部署及成熟的生态系统,正成为Python之外的强力替代方案。本文重点介绍了构建企业级智能体应用的技术栈,包括: LangChain4j:用于LLM编排和智能体逻辑开发。 Quarkus:提供高性能、低延迟的云原生运行环境,支持GraalVM原生镜像。 模型上下文协议 (MCP):实现标准化工具与数据接入,消除供应商锁定。 OpenTelemetry:提供端到端的全链路可观测性,监控智能体推理、延迟及错误。 通过实际代码示例,文章展示了如何利用Java的类型安全特性减少运行时错误,并结合现有微服务架构实现可审计、可扩展的生产级智能体部署,是企业在大规模应用中落地AI智能体的理想选择。
#人工智能#java#agentic ai#企业级应用#langchain4j
$ more
Jetbrains Blog

JetBrains网络研讨会:探讨开源项目 XenoAtom.Terminal.UI 与 AI 开发实践

JetBrains 将于 2026 年 4 月 16 日举办第 15 期 OSS Power-Ups 网络研讨会,邀请资深工程师 Alexandre Mutel 分享其开源项目 XenoAtom.Terminal.UI 的开发历程。该项目专注于构建现代化、可维护的终端用户界面(Terminal UI),采用了响应式设计和统一的布局流水线。演讲者将探讨如何利用 AI 编程工具辅助 API 开发、重构及测试,并分享在开源项目管理和 AI 辅助构建方面的实践经验。
#开源项目#net开发#终端用户界面#人工智能#软件工程
$ more
foojay

使用 Kotlin 同步驱动在 Spring Boot 中实现 MongoDB 搜索功能

本文介绍了如何利用 MongoDB Atlas Search 和 Kotlin 同步驱动,在 Spring Boot 应用程序中构建高效的全文搜索功能。文章通过一个 Airbnb 房源搜索示例,详细演示了从 MongoDB Atlas 集群配置、创建搜索索引、编写聚合管道,到构建 Kotlin 服务端接口的全过程。开发者可以学习如何使用 text、range 和 compound 算子实现复杂的搜索逻辑,并掌握在不依赖 Spring Data 的情况下,直接通过驱动程序与 MongoDB 进行交互的实践方法。
#mongodb#spring boot#kotlin#全文搜索#后端开发
$ more
DZone Java

使用 Jamolingo 在 Java 中实现 OData 到 MongoDB 的查询转换

在现代API开发中,支持动态筛选、排序和分页是常见需求,而OData标准为此提供了强大的灵活性。然而,将OData表达式映射到MongoDB查询语法通常比较复杂。Jamolingo是一款轻量级、框架无关的Java库,通过集成Apache Olingo,旨在弥补OData与MongoDB之间的鸿沟。该库能够自动将OData查询选项(如$filter, $orderby, $select等)转换为MongoDB的聚合管道。此外,Jamolingo还提供了性能分析模块,帮助开发者在执行前评估聚合管道的成本,预防昂贵查询对系统性能的影响,为构建高性能、可扩展的Java后端提供了实用方案。
#java#mongodb#odata#api 开发#数据查询
$ more
DZone Java

超越构建阶段:实现运行时的软件依赖项追踪与管理

核心概念 传统的构建期扫描在处理大型组织中成百上千个应用时存在局限性,难以反映生产环境中的真实依赖情况。本文提出了一种在运行时追踪和管理软件依赖项的方案,旨在提升软件供应链的透明度与安全性。 主要方案 通过在应用程序中集成标准化的API端点,实时获取并汇总活跃的依赖项列表。数据可由中心化服务进行收集与管理。这种方法能够帮助开发者分析组件在不同环境下的实际使用情况,从而更有效地评估漏洞影响并规划维护工作。 技术实现 作者提供了一个基于Java与Maven的PoC项目,通过Maven Dependency Plugin在构建时生成依赖树并将其封装在类路径中。运行时,系统会解析这些依赖数据,并通过API接口呈现给前端管理界面,支持对依赖项进行可视化调度与维护管理。
#软件供应链#依赖管理#网络安全#api开发#软件架构
$ more
Jetbrains Blog

在 Kotlin 中使用 Spring Data JDBC

本文介绍了如何结合 Kotlin 和 Spring Data JDBC 构建高效的持久层。文章指出,Spring Data JDBC 提供了简单且可预测的持久化模型,其对聚合根和构造函数映射的关注,与 Kotlin 的数据类(data classes)、不可变性、空安全及值类(value classes)特性高度契合。通过示例展示了如何定义聚合根、创建存储库(Repository)、实现自定义查询投影以及处理一对多关系。相比 Java,Kotlin 在减少样板代码、提升类型安全和优化性能方面具有显著优势。作者强调,通过合理设计聚合,开发者可以构建出易于理解且易于维护的持久化架构。
#kotlin#spring data jdbc#数据持久化#领域驱动设计#后端开发
$ more
foojay

为什么Java开发者容易过度信任AI的依赖建议

核心议题 本文探讨了Java开发者在面对AI生成的代码建议和依赖项时,因过度信任AI的自信语气而产生的安全隐患。AI生成的代码往往具备极高的流畅度和准确的格式,这利用了人类的流畅性启发法(Fluency Heuristic),使开发者倾向于认为其输出是正确的。 主要风险 虚假依赖:AI常推荐不存在的程序包,导致供应链投毒风险。 传递依赖盲区:AI无法感知复杂的依赖树,容易引入潜在的安全漏洞。 语义错误:AI生成的样板代码在语法上正确,但可能包含逻辑漏洞或使用已过时的API。 应对策略 强化工具链检查:利用Maven依赖树分析和OWASP扫描工具进行自动化验证。 优化提示词:在交互中强制模型说明假设条件、提供替代方案及权衡分析。 保持批判思维:将AI视为陌生贡献者,对所有生成代码进行严格的同行评审,避免因自动化带来的思维惰性。
#人工智能#java开发#软件供应链#代码审查#技术风险
$ more
Jetbrains Blog

迈向以代理为先的开发:我的Air使用体验

核心内容摘要 本文作者分享了从对AI辅助编程持怀疑态度,到深度使用JetBrains推出的AI开发环境Air的转变历程。作者指出,此前终端式AI工具(如Claude Code)因交互体验不佳,难以融入日常工作流。Air通过提供熟悉的交互界面和无缝的代码探索体验,成功降低了认知负荷,使开发者无需频繁切换应用。 作者通过实战案例证明了Air在处理重复性编码任务时的效率,并强调了在统一环境内进行代理协作的价值。最终,作者认为Air实现了开发工作流的整合,让开发者能够专注于架构设计,将实现工作委托给AI,标志着个人开发方式的重大升级。
#人工智能#软件开发#开发工具#智能代理#air
$ more
foojay

BoxLings发布:面向BoxLang与TDD/BDD的交互式编程学习工具

项目介绍 BoxLings 是一款受 rustlings 启发的交互式命令行工具,旨在帮助开发者通过实战练习学习 BoxLang 编程语言。该工具内置了 129 个循序渐进的练习,涵盖了从基础语法到异步编程、Java 互操作及 CLI 应用开发等 28 个主题。 核心特点 TDD/BDD 优先:将测试驱动开发(TDD)和行为驱动开发(BDD)作为核心技能,用户通过 TestBox 编写和运行测试来学习编程。 实战导向:采用“阅读失败测试-修复代码-通过测试”的模式,提供即时反馈。 多阶段学习路径:分为基础(50题)、进阶(40题)和高级(48题)三个阶段,适合不同水平的开发者。 易于使用:支持自动监听模式,用户只需保存文件即可自动触发测试运行。 适用场景 BoxLings 适用于个人自学、课堂教学及团队入职培训,支持离线运行。根据经验水平,完成全部练习预计耗时 4 至 20 小时不等。用户需安装 BoxLang 1.12+ 版本即可开始体验。
#boxlang#编程教育#测试驱动开发#交互式学习#cli工具
$ more
Jetbrains Blog

从Java到Wayland:像素的渲染之旅

本文深入探讨了Java应用程序在Linux环境下,通过AWT/Swing框架绘制像素并最终显示在Wayland合成器上的完整技术链路。文章详细解析了从Java 2D图形管线处理、颜色模型与Alpha预乘、色彩空间与伽马校正,到坐标系转换及Wayland共享内存缓冲机制的底层运作流程。通过对SurfaceData接口、缓冲区管理(如双缓冲与三缓冲策略)以及损坏区域(Damage)跟踪机制的剖析,揭示了Java UI在高性能渲染场景下的优化关键点,旨在帮助开发者理解如何通过管理图像格式与内存拷贝来提升图形性能。
#java#wayland#图形渲染#ui优化#linux
$ more