Apache DeltaSpike 2.0.1 介绍与选型指南
Apache DeltaSpike 2.0.1 认知篇:可移植 CDI 扩展套件的定位、核心模块、官方快速上手示例与退役背景下的选型建议,信息基于官方发布页与文档联网溯源(查询日期 2026-10-18)。
Apache DeltaSpike 2.0.1 介绍与选型指南
目标:本篇为 A1 认知篇,基于 Apache 官方下载目录、Maven Central、GitHub 官方仓库与 ASF 董事会纪要联网溯源整理(查询日期 2026-10-18),不涉及本地安装实测;本地安装实测属 B1 安装指南职责。
一、信息基准
1.1 查询日期与版本依据
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 本次介绍版本 | Apache DeltaSpike 2.0.1(官方最新稳定版) |
| 版本依据 | ASF 官方下载目录 downloads.apache.org/deltaspike/ 现存 1.9.6/ 与 2.0.1/ 两个版本线;Maven Central 元数据 org.apache.deltaspike.distribution:distribution-full 最新版本为 2.0.1(发布时间戳 2025-08-07) |
| 维护线说明 | 2.0.x 线面向 jakarta.* 命名空间;1.9.x 线面向 javax.* 命名空间,处于维护状态(官方下载页两线并存) |
1.2 项目生命周期警示(如实标注)
ASF 董事会纪要显示 DeltaSpike 已进入退役流程:2025-04-16 纪要记录委员会决定"为 DeltaSpike 推进 Attic 提案"(彼时 PMC 联系成员征询无回复);2025-07-16 纪要记载项目已就迁入 Attic 进行投票。截至查询日 2026-10-18:Attic 官方站点未收录 DeltaSpike 页面、项目主页 deltaspike.apache.org 仍在线、projects.apache.org 仍保留项目记录、GitHub 仓库未标记归档,即退役已决议、归档尚未完成,社区近乎停滞(来源:apache.org 董事会纪要 2025 年 4 月/7 月卷,查询日期 2026-10-18)。
1.3 官方来源清单
| 来源 | URL |
|---|---|
| 项目主页 | https://deltaspike.apache.org/ |
| 官方下载 | https://deltaspike.apache.org/download.html 、https://downloads.apache.org/deltaspike/ |
| 官方文档(Data 模块) | https://deltaspike.apache.org/documentation/data.html |
| ASF 官方项目档案 | https://projects.apache.org/project.html?deltaspike |
| ASF 董事会纪要(2025-04/2025-07) | https://www.apache.org/foundation/records/minutes/ |
| GitHub 官方同步仓库 | https://github.com/apache/deltaspike (只读同步,无 Release 发布) |
| Maven Central | https://central.sonatype.com/ (groupId: org.apache.deltaspike) |
二、软件概述
本文介绍 Apache DeltaSpike 2.0.1(下文简称 DeltaSpike)。DeltaSpike 是一组可移植的 CDI(Contexts & Dependency Injection)扩展套件,目标是为 Java 应用开发者补齐 CDI 规范之外的高频通用能力:类型安全的消息与国际化、组件级配置、程序化 Bean 查找、异常处理、仓库(Repository)模式数据访问等。项目 2014 年获 Duke's Choice Award,长期作为 Java EE / Jakarta EE 应用中"规范内再做薄封装"的事实选项之一(来源:deltaspike.apache.org 首页与项目介绍页,查询日期 2026-10-18)。
- 许可:Apache License 2.0。
- 维护方:Apache Software Foundation(ASF 顶级项目,当前处于退役流程中,见 1.2 节)。
- 形态:纯 Java 库(JAR 依赖,无独立进程),随应用一同打包部署。
- 生态位:运行在任意 CDI 实现(Apache OpenWebBeans、JBoss Weld)之上,可在 Apache Tomcat/TomEE、WildFly、GlassFish、Liberty、WebLogic 等环境使用(官网明示的测试矩阵)。
三、核心架构与核心概念
3.1 分层结构
DeltaSpike 没有服务进程,其"架构"体现为模块化的 JAR 分层:
| 层次 | 内容 |
|---|---|
| CDI 实现层 | OpenWebBeans 或 Weld,提供 CDI 运行时(CDI 规范本体) |
| DeltaSpike Core | 组件配置(@ConfigProperty 类配置注入)、类型安全消息与 i18n、BeanProvider 程序化 Bean 查找、异常处理(@ExceptionHandler)、项目阶段(ProjectStage) |
| DeltaSpike 模块层 | Data(仓库模式)、JPA(声明式事务等)、Bean Validation、Security(@SecurityBindingType 注解式授权)、Servlet、Test Control(CDI 测试引导)等 |
| 应用层 | 业务代码通过依赖注入消费上述扩展,无侵入 |
3.2 核心概念
- 可移植性(Portable):所有扩展只依赖 CDI SPI,不绑定某一实现/服务器,这是项目名称的由来,也是它与一般"服务器私有扩展"的分界。
- CDI 扩展(Portable Extension):遵循
jakarta.enterprise.inject.spi.Extension机制,在 CDI 启动期注册/改写 Bean 元数据,开发者侧通常只感知注解与接口。 - 模块(Module):Core 之外按能力域拆分为多个可选依赖,按需引入,不强制全家桶。
- 仓库模式(Repository Pattern):Data 模块允许只写接口、由 CDI 扩展在运行期生成实现,方法名派生查询或注解声明 JPQL。
四、功能特性
以下特性均可在官方文档对应模块页查证(deltaspike.apache.org/documentation,查询日期 2026-10-18):
| 模块 | 代表能力 |
|---|---|
| Core | 配置注入、类型安全 i18n 消息、动态 Bean 查找(BeanProvider)、全局异常处理、ProjectStage 环境区分 |
| Data | 接口式仓库、方法名派生查询、@Query 注解 JPQL/命名查询、QueryResult 流式分页 |
| JPA | 事务模板与声明式事务辅助、扩展的 EntityManager 注入 |
| Bean Validation | 方法级校验与 CDI 集成 |
| Security | 注解式访问控制(自定义 @SecurityBindingType) |
| Servlet | Servlet 环境下 CDI 会话/请求对象桥接 |
| Test Control | 在 JUnit 中直接引导 CDI 应用上下文做集成测试 |
| Scheduler / Jobs 等 | 定时任务等周边能力模块 |
- 双命名空间并行:2.0.x 为
jakarta.*(Jakarta EE 9+ / CDI 4 起步),1.9.x 为javax.*(Java EE 8 / CDI 2),老应用可走 1.9.6,新应用走 2.0.1。 - Java SE 可用:提供 Java SE 引导能力,可配合 OpenWebBeans/Weld 在无 Java EE 服务器场景使用。
五、快速上手(引自官方文档,不本地实测)
5.1 引入 Core 与 Data 模块(Maven)
按官方文档"Configure DeltaSpike in Your Projects"的依赖坐标方式(groupId org.apache.deltaspike.*),在 pom.xml 声明(版本取本文基准 2.0.1):
<dependency>
<groupId>org.apache.deltaspike.core</groupId>
<artifactId>deltaspike-core-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.deltaspike.modules</groupId>
<artifactId>deltaspike-data-module-api</artifactId>
<version>2.0.1</version>
</dependency>
官方来源:https://deltaspike.apache.org/documentation/data.html (Project Setup 一节,查询日期 2026-10-18)
5.2 Data 模块仓库接口(官方示例原文)
官方 Data 模块文档给出的典型用法如下(原文引自上述链接):
@Repository
public interface PersonRepository extends EntityRepository<Person, Long>
{
List<Person> findByAgeBetweenAndGender(int minAge, int maxAge, Gender gender);
@Query("select p from Person p where p.ssn = ?1")
Person findBySSN(String ssn);
@Query(named=Person.BY_FULL_NAME)
Person findByFullName(String firstName, String lastName);
}
官方文档说明:三种场景分别对应"方法名与参数直接翻译成查询""自动执行给定 JPQL 字符串""自动执行命名查询",方法实现由 CDI 扩展自动生成,客户端只需声明对接口的依赖(原文见 https://deltaspike.apache.org/documentation/data.html ,查询日期 2026-10-18)。
六、适用场景与限制
6.1 适用场景
- 存量 Java EE / Jakarta EE 单体应用:已在用 CDI,想补齐配置注入、i18n、异常处理等通用件而不引入整套框架。
- 老版本(Java EE 8 / javax 命名空间)应用:1.9.6 维护线是少数仍可依赖的现成 CDI 扩展集之一。
- 需要"接口即仓库"的轻量数据访问层,且不希望绑定 Spring 生态。
6.2 限制与风险
- 项目处于退役流程(1.2 节):无路线图预期、bug 修复与安全响应基本停滞;ASF Attic 项目默认不再发布安全补丁,选型方需自行评估合规与安全风险。
- 2.0.1 之后无发布计划可循;Maven Central 最近一次发布为 2025-08-07。
- 社区规模小(官方 GitHub 同步仓库 154 stars,最后推送 2026-07-21,查询日期 2026-10-18)。
- 不提供新框架级的开箱能力(如原生响应式、云原生集成),定位始终是"CDI 之上的薄扩展"。
七、同类选型对比
对比维度:许可、社区活跃度(GitHub stars + 最近发版)、版本节奏、兼容矩阵。数据均为 GitHub API 与官方发布页实查,查询日期 2026-10-18。
| 项目 | 定位 | 许可 | GitHub stars | 最近发版(2026-10-18 实查) | 兼容矩阵 |
|---|---|---|---|---|---|
| Apache DeltaSpike 2.0.1 | CDI 可移植扩展套件 | Apache-2.0 | 154(apache/deltaspike) | 2.0.1(2025-08-07,Maven Central 时间戳) | CDI 实现:OpenWebBeans/Weld;命名空间:jakarta(2.x)/javax(1.9.x);退役流程中 |
| Spring Data JPA 4.0.7 | 仓库模式数据访问(Spring 生态) | Apache-2.0 | 3291(spring-projects/spring-data-jpa) | 4.0.7(2026-08-21) | Spring Framework 生态;JPA 3.x;月度发版节奏 |
| Quarkus 3.40.1 | 云原生 Java 全栈框架(内建 CDI 子集 ArC) | Apache-2.0 | 15946(quarkusio/quarkus) | 3.40.1(2026-09-30) | Jakarta EE 10+ 特性子集、GraalVM 原生编译;高频发版 |
| Weld 7.0.0.Final | Jakarta CDI 规范参考实现 | Apache-2.0 | 418(weld/core) | 7.0.0.Final(2026-09-25) | Jakarta CDI 实现本体(不提供 DeltaSpike 式功能扩展) |
选型建议:新项目不建议再引入 DeltaSpike——功能上 Spring Data JPA(仓库模式)或 Quarkus(CDI 子集 + 全栈能力)覆盖面更广且高度活跃;仅当存量 Java EE 8/javax 应用需要零改造补齐 CDI 扩展时,才在"不再有安全维护"的前提下评估 1.9.6/2.0.1。
八、参考链接
- 项目主页:https://deltaspike.apache.org/
- 官方下载:https://deltaspike.apache.org/download.html
- 官方文档首页:https://deltaspike.apache.org/documentation.html
- Data 模块文档(快速上手出处):https://deltaspike.apache.org/documentation/data.html
- ASF 官方项目档案:https://projects.apache.org/project.html?deltaspike
- ASF 董事会纪要(Attic 决议记录):https://www.apache.org/foundation/records/minutes/
- GitHub 官方同步仓库:https://github.com/apache/deltaspike
- Maven Central 检索:https://central.sonatype.com/search?q=org.apache.deltaspike