cdi 作用 spring
上下文依赖注入(CDI, JSR 299 )是Java EE 6 Web Profile的一部分,它本身基于Java依赖注入( JSR 330 ),引入了@ Inject,@ Named等。而JSR 330仅用于DI并已实现例如,由Guice和Spring撰写,CDI添加了各种EE内容,例如@RequestScoped,拦截器/装饰器,生产者,事件以及与JSF,EJB等集成的基础。已经将EJB等Java EE组件重新定义为基于CDI( => @Stateless现在是具有其他服务的CDI托管bean)。
CDI除了具有DI功能之外,其关键部分还在于它对bean上下文的警惕以及对bean生命周期的管理以及这些上下文中的依赖关系(例如@RequestScoped或@ConversationScoped)。
CDI是可扩展的–您可以定义新的上下文范围,嵌入式拦截器和装饰器,并使其他bean(例如,来自Spring的)可用于CDI。
检查资源:
- Java EE 6中的上下文和依赖性注入作者:Adam Bien –对CDI的基本知识以及它与Java EE 5中的DI有何不同的很好解释(提示:上下文警觉)
- 幻灯片,其中很好地概述了CDI及其所有功能
- 关于CDI可扩展性和SPI (例如,Seam 3基本上是一组便携式CDI扩展)
- Guice和Spring没有实现CDI(3/2011)–并且Spring 可能没有这样做的动力 (它支持JSR 330,CDI的工作量很大)
- DZone CDI Refcard可能很方便
- CDI 1.0与Spring 3.1的功能比较:bean定义和依赖注入 :“在我在本文比较的领域,这两种技术几乎没有什么关键的区别”(尽管Spring更可微调)
- 重新加载了Java EE 6(CDI / EJB 3.1)XOR Spring Core :新项目最好从包含CDI的纯Java EE开始,并在需要时添加诸如JDBC / JMS之类的Spring实用程序
- Oracle:Java EE 6生态系统中的CDI – 62页幻灯片,其中的内容比前面提到的幻灯片更详细
注意:CDI 1.1( JSR 346 ,Java EE 7)应具有在非EE环境(即SE)中引导其的标准方法。
参考: 什么是CDI,它与@EJB和Spring有什么关系? 从我们的JCG合作伙伴在Holy Java博客上获得 。
- Java EE6 CDI,命名组件和限定符
- Java EE6装饰器:在注入时装饰类
- Java模块化方法–模块,模块,模块
- 在领域驱动的设计,贫乏的领域模型,代码生成,依赖项注入等方面……
- 基本的EJB参考,注入和查找
- Java教程和Android教程列表
翻译自: https://www.javacodegeeks.com/2011/11/what-is-cdi-how-does-it-relate-to-ejb.html
cdi 作用 spring