在过去的几周里,我们一直在忙于JSR-299(Java EE的上下文和依赖注入)规范,准备在6月初提交一个建议的最终草案。在此阶段,我希望从社区中征求对最近变更的意见,因此我在这里发布了一份规范的当前修订版[1]。
自修订的公开草案以来,我们做出了以下变更
- 删除了XML配置格式,因为我们更愿意定义一个新的、统一的XML部署描述符,将EJB和CDI的元数据作为未来JSR的一部分,并且因为专家小组未能就类型安全的XML格式的优点达成共识。
- 显著增强了提供第三方框架集成的SPI,允许可移植扩展定义自己的元数据设施并完全集成到容器初始化生命周期中。可移植扩展可以定义基于XML的元数据格式,甚至Java配置。实际上,可以支持Guice模块或Spring XML作为CDI的可移植扩展。 参见第11章。
- 添加了对基于Java的声明依赖性支持Java EE组件环境资源、持久性上下文、持久性单元、远程EJB和Web服务,以及对基于Java的JMS事件映射的声明支持。以前需要XML。
- 要求所有支持注入的Java EE组件类(根据EE规范定义)支持CDI定义的类型安全依赖注入机制。
- 改进了基于参数化类型的依赖关系解析支持。
- 增强了实例和事件API,并引入了特殊的@Any绑定。 参见第5.5章和第10.4章。
- 略微改变了@New的定义。 参见第3.11章。
- 通过将CDI服务的定义与可移植的扩展SPI分离,最小化实现上的限制。
- 更新了规范,以引用新的平台级托管Bean和拦截器规范。
JCDI不仅仅是一组允许你注入东西的注解。它是Java EE开发人员使用便携式代码轻松连接Java EE组件和服务的生态系统的关键,框架开发人员可以编写与容器集成的便携式扩展,部署人员可以使用最少的XML重新配置系统。
同时,Web Beans团队在RI和TCK方面取得了巨大进展,可用的版本已经发布。
请将关于这个新规范草稿的反馈发送至jsr-299-comments@jcp.org。祝您愉快!
更新:我已更新草稿,包括许可协议。