一、Overview
CDI提供的基本服务有:
1)Context:使用Context服务,让您能够把有状态组件的生命周期和交互绑定到一个定义良好并且可以扩展的生命周期环境中。
2)Dependency Injection:使用DI服务,让您能够把一个组件以类型安全的方式注入到一个应用中去,如果组件是个接口,那么可以在部署阶段决定选择这个接口的哪种实现来进行注入。
另外,CDI还提供以下服务:
3)与EL(Expression Language)集成,从而允许任意组件在JSF或者JSP页面中被直接调用。
4)对组件的组件进行装饰。
5)把拦截器与组件联系起来。
6)事件通知模型。
7)在Servlet提供的3种标准作用域范围之外(Request,Session,Application),提供了一个Web会话的范围。
8)一个完整的SPI(Service Provider Interface),允许第三方框架干净地集成到JavaEE 7环境中。
CDI的一个主要的主题就是:松耦合。