Ohhnews

分类导航

foojay

Java Web框架Jakarta Faces无状态版:AliFaces市场应用

概述 AliFaces是一个完全无状态的Jakarta Faces市场应用概念验证,采用服务端渲染,不依赖HttpSession、保存的ViewState或粘性会话。应用基于Jakarta Faces 4.1、Mojarra、PrimeFaces和OmniFaces,同一WAR可运行于Tomcat 11和Open Liberty。它通过签名JWT标识用户,将购物车与历史等状态外置到共享存储,配合CDN资源与边缘缓存,实现任意节点均可服务任一请求。作者强调现代UI取决于设计系统,无状态是架构属性,性能需要用真实场景测量;双节点测试展示了无JSESSIONID情况下跨节点购物旅程的可行性。
#jakarta faces#无状态架构#服务端渲染#java web框架#水平扩展
$ more
foojay

在GraalVM原生镜像中运行DuckDB的JDBC驱动程序

DuckDB是一个进程内分析数据库,只需向Java项目添加一个JAR即可获得直接读取CSV、Parquet和JSON文件的SQL引擎。GraalVM Native Image可将Java程序预编译为独立可执行文件,启动仅需毫秒且无需目标机器安装JVM。本文介绍如何将DuckDB JDBC驱动与GraalVM Native Image结合,通过跟踪代理生成JNI元数据并构建单一二进制数据工具。早期尝试因类初始化时机导致UnsatisfiedLinkError,GraalVM for JDK 22起默认改为运行时初始化后问题得到解决。实测duckdb_jdbc 1.5.5.0与GraalVM Community Edition 25.0.2在macOS Apple Silicon和Linux x64上构建成功,文中提供了Hello World示例,并讨论了更大规模应用中的启动性能表现。
#duckdb#graalvm#jdbc#java#原生镜像
$ more
foojay

SQLite 全端统一:一个契约,一种加密文件格式

Codename One 将各平台各自实现的 SQLite 统一为一份经过测试的数据库契约,覆盖 Android、iOS、JavaScript、Windows、Linux、watchOS、tvOS 和模拟器,并支持口令、托管密钥和原始密钥三种加密模型。该方案采用 SQLCipher 4 文件格式,加密数据库可在各端口间迁移,Windows 和 Linux 不再返回 null,JavaScript 改用 WebAssembly 替代已移除的 WebSQL。同步发布的内容还包括手表与手机独立应用模型、浏览器 DOM 文本搜索、智能家居统一 API、Android 点劫持防护、摄像头视觉扫描以及 App Intents。
#codename one#sqlite#跨平台开发#数据库加密#移动应用
$ more
foojay

App Shield:服务器不应信任调用它的应用

发布概述 Codename One 发布 App Shield 企业级应用认证层,将 Apple App Attest 与 Google Play Integrity 的硬件背书转换为后端可验证的短期 ES256 令牌,并在请求中附加 X-CN1-Attest。其核心思路是:仅在本机运行的安全检查可能被绕过,最终决策应由服务器根据可验证凭证作出。本次更新还支持 .otf OpenType 字体,推进 Maven 仓库向 R2 迁移,并更换 Windows 桌面构建服务器及调整推送服务地址。
#app shield#应用安全#移动开发#后端验证#安全令牌
$ more
DZone Java

务实的过早优化:不要错失关键3%的性能机会

本文从Knuth名言“过早优化是万恶之源”入手,指出人们常忽略后半句:“但不应错失那关键的3%”。作者认为简单、廉价且通用的优化技巧普遍适用,不依赖架构或框架。文中以JDK字符串操作为例,说明toLowerCase()与equals/startsWith/contains组合会分配额外字符串并降低性能,应使用equalsIgnoreCase或Apache Lang3的case-insensitive方法;正则表达式比普通字符串方法慢很多,应尽量复用预编译Pattern。集合查找用HashSet可将O(n)降为O(1),TreeSet和TreeMap支持大小写不敏感且无额外分配。枚举查找可用静态Map或NavigableMap实现O(1)查找,避免流式遍历的开销。日志记录器应声明为static final,SimpleDateFormat应被线程安全的DateTimeFormatter取代。结论是好的代码与高效代码并不冲突,关键是一秒钟的停顿:能否用一次代替多次。
#过早优化#性能优化#java#代码质量#最佳实践
$ more
Jetbrains Blog

Django 2026调查报告:稳定才是王道

Django软件基金会与PyCharm联合发布第五次Django开发者调查,覆盖40多个国家近3500名开发者。结果显示,Django核心生态保持稳定:PostgreSQL连续五年是最常用数据库,模板引擎使用率约80%,43%受访者已升级至Django 6.0。AI已成为主流开发工具,仅10%受访者不使用AI编码,但使用方式尚未定型,多数人仍采用“AI生成、人工审核”的监督式流程。Python工具链正快速整合,uv和Ruff等新兴工具迅速普及;类型提示渐成规范,类型检查工具竞争仍开放。Django在服务端渲染和API后端两种开发路线并行发展,其稳定性让开发者能放心尝试新工具和技术。
#django#开发者调查#ai辅助开发#python工具链#类型检查
$ more
Jetbrains Blog

JetBrains Cadence 遭遇安全事件,用户数据遭泄露

事件概述 JetBrains 披露其云服务 Cadence 遭遇安全事件。该服务通过 TeamCity 编排任务,因存在未修补的 CVE-2026-63077 漏洞而被攻击者利用,影响时间约为 2026 年 8 月 8 日至 24 日。已确认受攻击服务器为 api.cadence.jetbrains.com,攻击者访问并窃取了用户名、真实姓名、邮箱、最后登录时间及 IP 等个人数据,还获取了 2024 年完整备份、多个 AWS IAM 用户凭据及 S3 存储文件,部分同步至 Cadence 的源代码也可能泄露。JetBrains 已于 8 月 24 日将服务器下线并注销插件访问令牌,且正在通知相关部门。建议用户立即轮换或撤销所有相关凭据与密钥,审查关联系统、代码仓库和云环境,并将所有 Cadence 执行及其输入输出视为不可信。
#jetbrains cadence#安全事件#数据泄露#teamcity#云服务安全
$ more
InfoQ Java

Spring Boot中的后量子密码学:本迭代可落地的四种模式

文章针对Spring Boot微服务架构,提出后量子密码迁移中可落地的四种模式:服务间负载加密、数据库字段级加密、长期文档Dilithium签名,以及将OAuth2服务账户令牌从RS256迁移到量子安全签名。作者强调“先收集、后解密”威胁已现实存在,银行等机构存储的长期数据尤其面临风险;JDK 24原生支持ML-KEM和ML-DSA,Bouncy Castle可覆盖旧版本。文中指出,密钥管理是生产部署的关键前提,必须接入AWS KMS或HashiCorp Vault,否则字段级加密无法通过安全审计。建议按数据生命周期与监管风险排序,优先保护生命周期最长、监管暴露面最大的数据。
#后量子密码学#spring boot#数据加密#数字签名#密钥管理
$ more
Jetbrains Blog

IntelliJ IDEA 中的 Project Loom:虚拟线程、作用域值和结构化并发

Project Loom 为 Java 并发编程带来三项关键特性:虚拟线程、作用域值和结构化并发,旨在降低并发代码的编写与调试难度,解决传统线程池、ThreadLocal 在扩展性、上下文传递、线程泄露和错误处理等方面的问题。文章以客户资料服务为例,展示了如何用 StructuredTaskScope 重写基于 CompletableFuture 的并发逻辑,使超时、取消和异常处理更统一,并介绍了 IntelliJ IDEA 在调试、线程转储、JDK 下载及语言级别配置等方面对 Java 27 预览特性的支持。
#project loom#虚拟线程#结构化并发#作用域值#intellij idea
$ more
InfoQ Java

Spring新闻综述:Boot、Framework、Data、Security、Modulith、Batch迎来首个里程碑版本

发布概况 在Spring生态系统上一批版本发布时隔10周后,2026年8月17日当周迎来密集更新。首批里程碑版本涉及Spring Boot、Spring Framework、Spring Data、Spring Security、Spring Integration、Spring HATEOAS、Spring Modulith、Spring Batch、Spring AMQP以及Spring for Apache Kafka。这些发布标志着多个核心项目进入新的开发阶段,为后续稳定版本奠定基础。
#spring#spring boot#框架更新#里程碑版本#java生态
$ more