Skip to content

2.2 概要配置文件

Java EE 6 规范引入了**概要配置文件(Profiles)**的概念(参见“概要配置文件”章节)。

概要配置文件是 Jakarta EE 平台针对特定类别应用定制的一种平台配置。

概要配置文件并非新概念,也并非 Jakarta EE 平台独有。Jakarta EE 规范流程对其定义为: “一种通过引用方式纳入一系列规范、并可附加额外要求的规范文档。”

所有 Jakarta EE 概要配置文件均共享一套通用特性,例如命名与资源注入、打包规则、安全要求等。这保证了所有归入“Jakarta EE 平台”体系的产品具备一定程度的统一性,也间接保证了应用的统一性。同时,这也让熟悉某一配置文件或整个平台的开发者能够轻松切换至其他配置文件,避免技术能力与经验被过度割裂。

在上述基础功能之外,配置文件可自由选用平台中的任意技术组合,前提是必须遵守本规范中与所选技术相关的全部规则,无论这些规则是针对单一技术还是多项技术组合。

这一点值得着重强调。如果配置文件只是零散地包含若干技术,那它与一组松散绑定的 API 集合并无太大区别。而本规范采用的配置文件定义则确保:只要本规范对多项技术的组合使用制定了要求,那么所有基于 Jakarta EE 配置文件的产品都必须遵循这些要求。

举一个具体例子:在 Servlet 容器中使用事务。单独来看,Jakarta Servlet 规范与 Jakarta Transactions 规范均未为可移植应用定义完整的编程模型。本规范通过补充针对 Servlet 与事务组合使用的一系列要求,填补了这一空白。任何包含这两项技术、基于 Jakarta EE 配置文件的产品都必须满足这些要求,从而为应用开发者提供在所有相关 Jakarta EE 配置文件中通用的、更完整的编程模型。

可依据 Jakarta EE 规范流程规则及本规范中的相关定义制定更多概要配置文件。具体而言,配置文件的启动需向 Jakarta EE 规范流程提交项目计划书,完成后可按自身计划发布,独立于平台本身或其他配置文件的同步修订。这为新配置文件的制定、发布及现有配置文件的版本更新提供了最大灵活性。

按照上述配置文件定义,一个配置文件最终可以是平台的真子集真超集,也可以与平台存在部分重叠。这种灵活性确保未来的配置文件能够覆盖远超平台规范最初设想的使用场景。

如前文所述,创建新的配置文件是一项重要工作。决定创建配置文件时应充分考虑其潜在弊端,尤其是可能带来的生态碎片化与开发者困惑问题。通常情况下,仅当存在明确的开发者群体,且有特定类型的应用可从中受益时,才应创建配置文件。同时建议配置文件对其目标领域进行全面覆盖,以减少重叠或相互竞争的配置文件出现。Jakarta EE 平台的可选组件、可扩展性等特性,可被配置文件使用,以更好地适配其目标场景。