Ohhnews

分类导航

Jetbrains Blog

告别粘贴令牌:JetBrains IDE 插件的 OAuth2 登录

本文介绍了如何在 JetBrains IDE 插件中实现 OAuth2 登录,避免用户手动粘贴个人访问令牌。核心流程包括:用户点击登录按钮后,浏览器打开授权页面,用户完成登录后重定向回 IDE 内置 HTTP 服务器,插件接收回调并验证 state 参数,使用 PKCE 交换授权码获取访问令牌,最后将令牌安全存储在 PasswordSafe 中。文章以 GitHub 为例,详细说明了插件的代码结构,包括 settings UI、回调处理器、OAuth 请求创建与令牌交换等模块。PKCE 机制防止了桌面插件因无法保护客户端密钥而带来的安全风险。通过这一流程,插件可以在不接触用户密码的情况下安全访问 API。
#oauth2#jetbrains 插件#身份验证#pkce#令牌管理
$ more
Jetbrains Blog

Mellum2 正式开源:专为 AI 工作流打造的高效模型

JetBrains 宣布将其开发的 12B 参数大语言模型 Mellum2 开源,采用 Apache 2.0 许可证。该模型基于 Mixture-of-Experts(MoE)架构,每令牌仅激活 2.5B 参数,显著降低计算成本,同时保持低延迟和高吞吐量,适合实时 AI 工作负载。Mellum2 专注于自然语言和代码数据,专为路由、问答、子代理和私有 AI 部署等场景优化,在代码生成、科学推理和数学等基准测试中表现与同级模型相当,但推理时间减半。JetBrains 认为未来属于协调的系统,Mellum2 作为“焦点模型”将高效处理高频重复任务,与前沿大模型协同工作。
#mellum2#开源#大语言模型#ai工作流#软件工程
$ more
Jetbrains Blog

如何使用Qodana修复常见的TypeScript问题

大部分TypeScript项目已集成ESLint和@typescript-eslint检查常见问题(如显式any、浮动Promise等),但ESLint规则只能在单个文件范围内运行,无法进行跨文件分析。Qodana填补了这一空白,提供全项目类型感知分析,能够检测五个典型问题:隐式any通过代码库传播、非空断言被用作捷径、未等待的Promise导致执行顺序错误、未使用的导出符号增加维护负担、不同文件间的重复逻辑。文章还介绍了如何设置Qodana,使用默认配置文件即可发现这些问题,并通过基线功能在CI中逐步修复现存问题。
#typescript#qodana#静态分析#代码质量
$ more
Baeldung

Java中解决袜子商人问题的两种方法

文章概述 本文探讨了解决经典编程题“袜子商人问题”的两种Java实现方法。问题描述:给定袜子颜色数组,计算可配对的袜子对数。 基于数组的方法:通过计数数组统计各颜色出现次数,累加每颜色对数。适用于颜色范围小且连续的场景,时间复杂度O(n+k),空间复杂度O(k)。 基于HashSet的方法:利用集合并序遍历袜子,遇到未匹配则加入,已匹配则成对并从集合移除。适用于颜色值范围大或稀疏的场景,平均时间复杂度O(n),最坏O(n log n)。 文章提供了完整代码示例和测试用例,帮助读者理解两种方案的优劣及适用场景。
#袜子商人问题#java#算法#数组#hashset
$ more
foojay

Foojay播客第97期:从脚本语言到AI强引擎:BoxLang如何重新定义JVM开发

节目概览 本期Foojay播客专访BoxLang创始人Luis Majano及社区经理Cristobal Escobar,深入剖析BoxLang AI v3的重大更新。该版本引入多智能体编排(支持父子层级关系)、基于Anthropic开放标准的AI技能系统、MCP服务器集成(既可消费也可提供服务)、可组合中间件层(含FlightRecorder等六个内置类用于确定性CI测试),以及覆盖17家AI提供商的统一API。此外,节目还介绍了BoxLang Spring Boot Starter(动态JVM模板引擎)、交互式TDD/BDD学习平台BoxLings、以及TestBox 7的实时流式测试运行器和浏览器IDE。BoxLang作为现代动态JVM语言,100%兼容Java并编译为JVM字节码,可部署于操作系统、AWS Lambda、Spring Boot等多种环境,正重新定义JVM生态中的AI开发范式。
#boxlang#jvm#人工智能#动态语言#智能体
$ more
Spring Blog

AI时代的Spring与安全

随着生成式AI在2026年的普及,开源社区面临安全报告激增的挑战。Spring团队在4月收到482份安全报告,其中370份来自内部扫描,112份来自社区,最终发布26个CVE。尽管大部分漏洞为中低风险,但数量庞大,强烈建议用户升级至6月发布的最新补丁。VMware Tanzu Spring提供专属支持,包括自动升级和零日补丁访问,以应对持续加速的Java生态系统变化。
#spring#ai安全#漏洞扫描#开源生态#cve
$ more
Spring Blog

Spring发布列车时间变更

Spring官方宣布发布列车再次调整时间。原定于5月11-22日的发布计划先调整至6月1-5日,现最新更新改为6月8-12日。此调整适用于所有OSS版本,包括新的次要版本和补丁版本。Spring官方日历网站将同步更新。感谢大家的理解与耐心。
#spring#spring boot#发布计划#时间调整#版本更新
$ more
Baeldung

在 Selenium WebDriver 中等待加载复杂 JavaScript 页面的策略

本文探讨了在 Selenium WebDriver 中等待包含大量 JavaScript 的页面完全加载的多种策略。文章指出现代页面依赖异步调用和动态 DOM 更新,简单的延迟或不充分的等待会导致测试不稳定。作者创建了 PageLoadHelper 辅助类,封装了基于 WebDriverWait 的显式等待逻辑,并介绍了多种具体方法:检查 document.readyState、等待 jQuery AJAX 完成、利用 Angular 的 testability API 判断稳定性、针对 React 通过元素可点击性间接等待、在 window 对象中注入自定义标志、以及拦截 Fetch API 跟踪请求。文章比较了各策略的适用场景与局限,并建议组合使用:先确保文档就绪,再执行框架特定检查,最后确认关键元素可交互。实际选择取决于应用技术栈和代码控制权限。所有代码示例均可在 GitHub 上获取。
#selenium webdriver#页面加载等待#javascript异步处理#自动化测试#框架适配
$ more
Baeldung

Spring AI 子代理协调指南

本文介绍了如何在 Spring AI 中使用子代理协调模式。通过 Spring AI Community Agent Utils 库的 TaskTool 工具,可以构建层次化的多代理系统,其中主代理负责将任务动态委派给专门的子代理。每个子代理在独立的上下文窗口中运行,专注于特定职责,例如代码审查和文档撰写。子代理的行为通过 Markdown 文件定义,便于维护和版本化。文章提供了完整的项目配置、依赖添加、代理定义及协调器服务实现的步骤,并演示了如何通过集成测试验证协调流程。该模式有助于提高 AI 系统的模块化、可维护性和输出质量。
#spring ai#子代理协调#多代理系统#人工智能#技术教程
$ more
Baeldung

使用Spring AI在MCP服务器中嵌入HTML UI

教程概述 本文详细介绍了如何使用Spring AI构建一个MCP(模型上下文协议)服务器,并将其连接到Claude Desktop。首先创建一个简单的“Hello World”工具,然后使用MCP Inspector和Claude Desktop进行测试。之后,通过@McpTool和@McpResource注解,将交互式HTML UI(例如一个随机推荐运动项目的转盘)嵌入到AI聊天会话中,实现富交互体验。
#mcp服务器#spring ai#html ui#claude desktop#交互式ui
$ more