今天,Red Hat 提交了 JSR-299最终草案 给 JCP。JSR-299 规范简称 CDI(Contexts and Dependency Injection,上下文与依赖注射),与此同时,该规范的参考实现(Weld 1.0 )与 TCK(兼容性测试套件)也已经完成。查看该规范的 Javadoc 请点击这里 。
该规范定义了一系列互补的服务,以改进应用代码的结构。下面是该规范的一些特性:
- 有状态对象与其生存周期上下文的绑定,并且上下文是可以扩展的
- 一套非常顶尖的类型安全依赖注射机制,无论在开发或部署时开发者都可以自由选择需要注射的依赖,无需文本配置
- 支持 Java EE 模块化以及 Java EE 组件体系结构——当进行 Java EE 组件的依赖解析时,Java EE 应用的模块化结构是非常重要的
- 整合了统一的表达式语言(EL),可以在任何 JSF 或者 JSP 页面中直接使用上下文受管对象
- 对已注射对象可以进行装饰
- 通过类型安全的拦截器绑定可以对对象进行拦截器关联
- 事件通知模型
- 在 Servlets 规范定义的三个 Web 上下文外又增加了一个 Web 长会话上下文(Conversation Context)
- 服务提供接口(SPI)允许容器进行便携扩展整合
跟多细节请看这里 。