Ohhnews

分类导航

Jetbrains Blog

JetBrains Qodana 团队代码质量问答

JetBrains Qodana 团队围绕代码质量常见问题进行问答。技术债务描述为未来工作而做的有意妥协,代码质量差则源于知识不足。降低深层嵌套循环的认知复杂度,最佳做法是避免嵌套,提取函数,简化条件,显式命名中间结果,使用迭代器、生成器、map、filter、reduce,并在处理前尽量展平数据。代码覆盖率衡量单元测试执行了多少生产代码,变异测试通过注入小改动检验测试是否能发现问题,约40%至60%的变异分数可作为合理起点。单元测试提供最快反馈,能在回归附近捕获问题,使重构更安全。跟踪质量改进应看长期趋势:静态分析可显示新增问题、严重程度和技术债务变化,同时观察生产环境 Sev 1 问题和 MTTR。消除自动漏洞扫描误报,需让工具获得更多仓库信息;可通过 qodana.yaml 排除检查,或用 NOLINT 注释抑制个别代码行。最后,团队应有意识地做技术妥协,保持代码可理解,并建立快速反馈循环,借助 Qodana 将 JetBrains 检查集成到 CI/CD 中。
#jetbrains#qodana#代码质量#技术债务#单元测试
$ more
DZone Java

Valkey:将键值数据库带入企业级 Java

企业应用通常同时面临多种数据挑战:部分数据需要事务完整性与关系建模,而会话、计数器、限流、临时状态、热点对象和协调数据等更看重快速且可预测的访问,键值数据库的简洁性由此成为架构优势,在分布式与云原生系统中尤为明显,因为延迟、吞吐和可扩展性直接影响用户体验与基础设施成本。Valkey 源自 Redis OSS 血统,是 Linux 基金会下厂商中立的开源项目,提供高性能键值平台,适用于缓存、应用状态、消息传递和主数据存储。文章展示了如何借助 Jakarta NoSQL 与 Eclipse JNoSQL 在 Java 中使用 Valkey:实体映射方式保持不变,切换键值实现通常只需更换驱动和配置,从而避免与特定厂商 API 紧耦合,使多语言持久化策略更切实可行。
#valkey#键值数据库#jakarta nosql#企业级 java#多语言持久化
$ more
Jetbrains Blog

JetBrains推出Air:构建面向智能体软件开发的产品体系

JetBrains 将此前智能体开发环境、JetBrains Central、CLI、团队协作与治理等能力整合为 JetBrains Air,形成一个面向开发者、团队和组织的开放产品体系。它包括 IDE 内的完整智能体开发体验、Air Teams 团队协作与交付自动化,以及 Air Governance 组织级政策、审计、成本管理和问责。JetBrains 认为智能体开发未来将是多供应商格局,系统需保持开放并连接不同模型、智能体和工具。随着智能体承担更多执行工作,瓶颈从生成代码转向理解、验证和承担责任;代码更易生成但更难验证,责任仍由组织承担。JetBrains Air 提供统一上下文、政策、成本视图和过程记录,并计划通过滚动发布扩展至移动、远程及更多自动化工作流。
#jetbrains air#智能体开发#ai编程#软件开发#多供应商
$ more
Spring Blog

Spring 周报:Spring Security 新书、Spring AI 与 Spring Tools 更新

本期 Spring 周报发布于2026年9月22日。作者首先提到中秋节吃月饼,并分享自己排队三小时购买旧金山金门饼家月饼的经历。技术内容方面:作者正在编写免费开源的 Spring Security 书籍;介绍新型快速决策模型 Jev 及其在智能体路由中的应用,并推荐 Spring AI 负责人 Christian Tsolov 的文章;回顾与 Spring Tools 负责人 Martin Lippert 的对话,宣布 Spring Tools 5.4.0 发布;Craig Walls 撰写 Spring AI 配方,讲解如何总结 ChatMemory;Ron Pressler 分享 Java 内存管理原则;还提到 Spring Batch 新增 MongoDB 作业仓库支持、Baeldung 的 EnvironmentPostProcessor 与 Spring Security 注册教程,以及 KCDC 大会关于 Spring 安全实践的开源代码。
#spring#spring ai#spring security#java#开发周报
$ more
foojay

Foojay全新改版:从WordPress迁移至基于Hugo的静态站点

Foojay网站完成全面改版,域名与所有旧链接保持不变,但底层已从WordPress迁移为基于Hugo的静态站点,全部内容存放于公开Git仓库,发布文章只需提交拉取请求。迁移涵盖2250多篇文章、350多个作者档案、50多个JVM术语、JUG目录与日历等,并保留所有历史路径。项目由Java脚本驱动,基于JBang运行,完成内容迁移、数据同步与每日更新。新站点新增播客文字稿、GitHub Discussions评论、自动化日历与会议管理、无障碍访问(WCAG 2.2 AA)以及自建阅读计数器等功能。作者可使用Markdown或AsciiDoc撰写文章,自动化检查会在人工审核前验证格式与链接。
#foojay#hugo#静态网站#开源社区#java
$ more
InfoQ Java

Java新闻周报:JDK 27、Open J Proxy、A2A Jakarta、Azul Payara、BoxLang、Netflix ja

2026年9月14日当周Java新闻汇总:JDK 27、LibericaJDK 27、Open J Proxy 1.0和A2A Jakarta 1.0正式发布;Azul Payara、JHipster、JetBrains Ktor和BoxLang发布小版本更新;同时介绍Netflix ja,一种面向Java开发者的现代JMS命令行开发体验。作者:Michael Redlich。
#java#jdk 27#open j proxy#a2a jakarta#netflix ja
$ more
Baeldung

Solon 框架入门:架构、依赖注入与 REST API 实践

本文介绍独立于 Spring 的企业级 Java 框架 Solon。文章先概述其架构、核心原则与生态,涵盖依赖注入、AOP、请求路由,以及 solon-cloud、solon-ai 等模块。随后使用 Solon 4.1.0、Java 21、Maven、MyBatis-Flex 1.11.8 和 H2 构建任务管理 REST API,演示控制器、服务、持久化、配置分层、数据库初始化与测试。文中将 Solon 与 Spring Boot 的注解、配置和 HTTP 处理进行对比,并给出 Hello World、CRUD、事务回滚及集成测试示例。Solon 适合微服务、Serverless 和资源受限场景,但采用时需学习不同的注解与配置约定。
#solon#java框架#依赖注入#rest api#mybatis-flex
$ more
Spring Blog

Spring Office Hours播客S5E24:Jev、Java与Spring

本期Spring Office Hours播客由Dan与DaShaun主持,聚焦TypeSafe推出的新型模型Jev。与传统聊天模型输出大段文字不同,Jev针对内容回答“带类型”的问题:输入文本和所需决策,它会直接返回概率、选项或评分,而非一段叙述,因此天然契合代码中本就需要做出的判断,例如某张工单是否紧急、应由哪个团队负责、某个提示词该交给哪个模型处理。两位主持人讨论了这一特性对Java与Spring开发者的意义:以往开发者需要让聊天模型给出决定,再从散文中解析答案,而Jev提供可直接分支判断的类型化答案,并附带可校验的置信度。Dan分享了在Java与Spring Boot中落地Jev的经验,并探讨了决策模型在Spring AI体系中适用与不适用的场景。节目最后设有互动环节,欢迎听众就Jev、Spring Boot 4、Spring AI及Spring生态的其他话题现场提问。节目笔记中还列出了Jev的官方介绍、Spring AI与Jev结合的博客、GitHub示例仓库及入门教程等资源。
#spring#java#jev#typesafe#人工智能
$ more
Spring Blog

Spring框架发布机制革新:以应对现代安全挑战

Spring官方宣布对发布流程进行重大调整,将原本持续两周的发布列车压缩为单日发布,时间固定在每月第三个周一之后的周四,形成“补丁周四”机制。首次按新格式进行的补丁发布定于10月22日,9月24日仅发布里程碑版本。官方表示,自今年3月以来每月平均收到近80份社区提交的安全报告,漏洞被发现和利用的速度因AI而大幅加快且未见放缓。为此,团队已修复160多个新CVE,并重新设计spring.io/security页面,支持按编号、严重程度和项目快速检索安全公告,以应对单月多达91份公告的规模。团队强调,安全的持续投入与新增功能同样重要,将继续演进以应对不断变化的安全形势。
#spring#开源框架#安全漏洞#cve#发布流程
$ more
Spring Blog

Spring AI 与 TypeSafe Jev:快速、低成本的结构化决策

Spring AI 社区推出新项目 Spring AI TypeSafe,集成 TypeSafe AI 托管的 Jev API,为 AI 应用提供快速的类型化决策能力。它不是聊天模型,也不生成文本,而是接收状态(被判断对象)与一组类型化问题,一次调用即可完成分类、评分与判断。核心包含三种原语:Noul(是/否,返回 0-1 真值)、Choice(多选标签、概率分布与置信度)、Score(有序评分及连续值)。一次三问调用约 310 毫秒、仅 73 个输出 token,成本远低于推理模型。项目提供 JevJudge(LLM-as-a-Judge 判定)、JevSelfRefineAdvisor(自反思重试循环)、JevGuardrailAdvisor(输入输出安全护栏)等组件,并实现 Spring AI 既有的 CallAdvisor、DocumentPostProcessor、ToolIndex、Evaluator 等 SPI。作者建议在每次昂贵的模型调用前用其做廉价校验,但需注意 Jev 不支持流式、状态须为字符串/对象/数组或 null、逐文档处理需多次调用。0.1.0 版本已发布至 Maven Central。
#spring ai#typesafe jev#结构化决策#llm 评估#安全护栏
$ more