Ohhnews

分类导航

foojay

Spring Boot 配置的隐藏秘诀:EnvironmentPostProcessor

文章介绍 Spring Boot 的 EnvironmentPostProcessor:它在 ApplicationContext 创建前修改 Environment,适合从共享 starter 向多个服务提供可覆盖的默认配置。普通 application.yml、额外 profile 或 @Configuration/@PropertySource 分别存在加载顺序、优先级和需人工启用等问题。EnvironmentPostProcessor 需通过 META-INF/spring.factories 注册,Spring Boot 4 中接口包名有所调整。使用 addLast 可将默认值置于最低优先级,addFirst 可在合并用户配置后强制生效。作者以 Axelix 暴露 Actuator 端点为例,说明应先用 Binder 读取并合并用户配置,且读取现有配置的处理器应在 ConfigDataEnvironmentPostProcessor 之后运行;同时需注意无法注入 Bean、日志未初始化、异常处理及全局生效等限制。
#spring boot#environmentpostprocessor#配置管理#默认配置#java
$ more
foojay

告别Google Drive:用Tailscale上的Syncthing同步KeePass密码数据库

作者长期用KeePass管理密码,此前靠Google Drive在笔记本与手机之间同步。由于KeePassXC保存时会写临时文件、删除原文件再重命名,而Google Drive按文件ID而非文件名追踪,导致iPhone上的KeePassium指向已删除的文件,需反复重新添加数据库并插入物理安全密钥;同时云端还长期保留密码库的全部历史版本。于是他改用点对点同步工具Syncthing,并借已有的Tailscale私有网络关闭全局发现、中继与NAT穿透,设备通过MagicDNS域名直连,形成以常开群晖NAS为中心的星型拓扑。文中详述了NAS、macOS、iOS(Sync Anything)与KeePassium的配置步骤,并讨论了同步冲突、iOS后台限制、单点故障及“四份相同副本不等于备份”等取舍。
#syncthing#tailscale#文件同步#密码管理#隐私保护
$ more
foojay

dukehoff-decide:用小型语言模型实现类型化且校准的决策

dukehoff-decide 是一个基于 Apache 2.0 许可的开源 Java 库(0.1.0 已发布至 Maven Central),用于把 Java 应用中的多选题式 LLM 调用转换为类型化决策。它调用本地小型模型,直接从对数概率读取各选项概率,返回始终合法的 Java 类型值及概率分布,并可通过置信度门控仅在概率可靠时自动决策。开发者可用数百条历史标注数据离线校准,生成准确率前后对比、自动决策比例及混淆选项报告。测试中,11 类客服消息在 Qwen2.5 1.5B(4-bit)上经校准后准确率由 87.7% 升至 93.7%,阈值 0.9 时自动决策比例由 50% 升至 71%,其中正确率由 94.0% 升至 99.5%;在难以从文本推断队列和优先级的工单数据上,校准后不再自动路由。项目要求 Java 21 和支持对数概率的 OpenAI 兼容 API,提供 Spring Boot starter、健康检查和 Micrometer 指标。
#dukehoff-decide#java#小型语言模型#概率校准#开源工具
$ more
Jetbrains Blog

JetBrains Air 接入 GitHub Copilot:可在 IDE 与云端使用现有订阅

GitHub 与 JetBrains 宣布将 GitHub Copilot 集成到 JetBrains Air。用户可在 JetBrains IDE 本地或通过 Air Teams 云端选择 GitHub Copilot 作为代理,任务通过 Agent Client Protocol 调用官方 Copilot CLI,并沿用现有 Copilot 订阅,而非 JetBrains AI 点数。云端任务在独立沙箱虚拟机中运行,支持关闭笔记本后继续执行,也可通过自动化按计划或拉取请求触发。Air 不跟踪 Copilot 用量,用户需在 GitHub 查看额度与消费情况。
#github copilot#jetbrains air#ai编程#云端任务#开发者工具
$ more
Jetbrains Blog

聆听IDE正在做什么:JetBrains IDE新增声音提示功能

JetBrains宣布在IDE 2026.3版本中引入声音提示功能,用短音效反馈构建、测试、后台任务和断点的状态,并在光标移动到错误、警告、断点、版本控制变更或折叠代码时提供可听提示。屏幕阅读器用户默认开启,其他用户可按需启用并逐项配置。新版还集成Air智能代理的四类声音提示,并将相关设置集中在无障碍页面。该功能已在候选版本中开放试用。
#jetbrains#ide#声音提示#无障碍#开发工具
$ more
Jetbrains Blog

eMudhra证书颁发机构私钥泄露事件对TeamCity的影响及应对

2026年10月,eMudhra运营的八个中间证书颁发机构私钥被发现强度不足,可从公开数据中恢复。eMudhra称受影响中间CA未签发终端实体证书,且未发现私钥在披露前被恢复或利用的证据。该问题并非TeamCity自身漏洞,但TeamCity依赖的Java运行时等信任存储可能仍信任涉事证书。TeamCity从2026.2.2和2026.1.6版本起提供健康报告,建议升级TeamCity、更新服务器与构建代理的Java运行时、重新部署Docker镜像,并检查上传证书及自定义信任存储;TeamCity Cloud已更新,但自托管代理和上传证书仍需审查。
#emudhra#证书颁发机构#teamcity#网络安全#证书信任
$ more
Jetbrains Blog

TeamCity 发布 2026.2.2 和 2026.1.6 错误修复更新

TeamCity On-Premises 2026.2.2 和 2026.1.6 错误修复更新已发布,解决了大量问题,包括安全和性能问题,以及项目版本化设置无法收集新更改、服务器重启后云代理无法匹配、检出规则修订计算缓慢、辅助节点无法获取安全补丁列表等错误。强烈建议安装这些更新以解决安全漏洞。更新还提供了性能改进、更好的集成兼容性、更快更稳定的构建和增强的工作流安全性。同一大版本内的错误修复更新共享数据格式,可无需备份恢复直接升级或降级。升级方法包括使用自动更新功能、从官网下载或拉取 Docker 镜像。
#teamcity#jetbrains#错误修复#安全更新#性能优化
$ more
DZone Java

Java 27 将 G1 设为所有环境的默认垃圾收集器:升级前如何测试小型容器

JDK 27 于 2026 年 9 月 15 日发布,JEP 523 取消了 G1 在受限环境回退到 Serial GC 的逻辑,使 G1 成为所有环境的默认垃圾收集器。此前当可用处理器为 1 或物理内存低于 1792 MB 时,JVM 会自动选择 Serial GC。该变化主要影响未显式指定收集器的小型容器,如边车容器、批处理与队列 worker、低流量内部服务、CI/开发容器以及设置分数 CPU 的 Pod。升级前可通过 GarbageCollectorMXBean 识别当前收集器:Serial GC 报告 Copy、MarkSweepCompact,G1 报告 G1 Young Generation 等。G1 的本地内存开销约 43 MB,Serial GC 约 1.7 MB;在 256 MB 容器中占比可达 16%,可能导致 OOM。建议用最小容器规格和代表性负载对比总停顿时间、p99 尾延迟及负载下的 RSS;若 G1 表现更差,可显式设置 -XX:+UseSerialGC。Java 27 非 LTS,但同一默认值将进入下个 LTS,提前评估风险更低。
#java 27#g1 gc#jep 523#容器内存#垃圾回收
$ more
Jetbrains Blog

节省的字节去哪了?IntelliJ IDEA 紧凑对象头实测

文章评估 Java 27 默认启用的紧凑对象头(Project Lilliput/JEP 534)在 IntelliJ IDEA 中的实际效果。测试覆盖欢迎页、小型 Spring Petclinic 和大型 IDEA monorepo,对比开启与关闭对象头。结果显示:进程 RSS 无稳定显著下降;堆内对象占用在欢迎页及 Petclinic 约减少 6.3%,monorepo 约减少 8.2%—8.4%;总分配量减少 8.8%—13.0%;GC 次数、耗时和 CPU 在多数组场景下降,IDE 操作耗时略有改善。最低可用 -Xmx 方面,Petclinic 从 400MiB 降至 376MiB(6%),monorepo 从 1888MiB 降至 1568MiB(17%)。结论是紧凑对象头可降低内存开销、分配波动和 GC 压力,并降低堆上限,但不保证 RSS 同步下降或整体提速,仍需分别测量,不应仅因对象头变小而调低 -Xmx。
#intellij idea#jvm#紧凑对象头#内存优化#垃圾回收
$ more
Jetbrains Blog

JetBrains发布DataGrip及数据库工具第三次用户体验调查结果

JetBrains发布第三次DataGrip及数据库工具用户体验调查结果,共1420人参与。整体满意度为84.7%,低于前两次的87.5%和90%,主要因本次通过产品内通知覆盖更多仅使用内置数据库工具的用户,该群体满意度为81.4%,而仅用DataGrip和混合用户分别为87.9%和87.0%。分项满意度:质量与稳定性87.5%,性能79.7%,易用性77.0%,功能完整性80.0%,数据源与SQL方言支持86.2%。AI功能满意度41.6%,51.5%为中立;61%的受访者在JetBrains IDE中使用AI,70%将其用于数据库任务。团队表示将优化性能、易用性、数据库支持及AI代理安全与集成。
#datagrip#数据库工具#用户体验调查#jetbrains#ai功能
$ more