简要概述了Java EE中的依赖项注入,@ Resource / @ EJB和@Inject之间的区别以及它们与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,它与@EJB和Spring有什么关系?相关推荐

  1. cdi 作用 spring_什么是CDI,它与@EJB和Spring有什么关系?

    cdi 作用 spring 简要概述了Java EE中的依赖项注入,@ Resource / @ EJB和@Inject之间的区别以及它们与Spring的关系-主要是链接形式. 上下文依赖注入(CDI ...

  2. spring(11)使用对象-关系映射持久化数据

    [0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(11)使用对象-关系映射持久化数据& ...

  3. Spring、 Spring MVC、 Spring Boot的关系

    一.概念 1.Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系.其核心就是控制反转(IOC) ...

  4. Apache CXF 3.0:CDI 1.1支持替代Spring

    几周前刚刚发布了Apache CXF 3.0 ,该项目又迈出了满足JAX-RS 2.0规范要求的又一个重要步骤:与CDI 1.1集成. 在此博客文章中,我们将看几个有关Apache CXF 3.0和A ...

  5. Servlet / Tomcat / Spring 之间的关系

    0.基础知识 在idea中打开servlet的源码: 可以看见servlet就是一个接口:接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范. 有的人往往以为就是se ...

  6. Spring boot日志关系

    新建项目 右击Diagrams--Show Dependencies 查看依赖关系 Ctrl+滚轮可以缩放 场景启动器 <dependency><groupId>org.spr ...

  7. Servlet/Tomcat/ Spring 之间的关系

    0.基础知识 在idea中打开servlet的源码: 可以看见servlet就是一个接口:接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范. 有的人往往以为就是se ...

  8. java用beaninfo_JavaBeanInfo 和 Spring 之间的关系

    Java Beans 在这一章章节中笔者将和各位一起探讨关于 Java Beans 相关的内容.本章主要围绕 java.beans 这个包路径下的代码进行一些说明. 在 Spring 中我们可以看到 ...

  9. spring与web关系

    一 .引言 好久没写了,没事儿看看了手写springmvc的文章,有些感慨,自己太弱了,顺便梳理了下spring与web的关系. 手写springmvc基本思路 1.读取配置文件: 2.找到配置文件的 ...

最新文章

  1. MATLAB表白利器
  2. 奥比中光大白(3D结构光)摄像头测试发现对着灯光过曝问题
  3. 这么烂的游戏也能卖2000万吗?
  4. firebird乱码问题
  5. monkeyrunner脚本的录制和回放
  6. PHP案例:连接数据库实现登录功能
  7. [转]《精通css》笔记1:css选择器与优先级
  8. easyUI表单验证扩展
  9. CJSON parse.c
  10. spring boot 开发soap webservice
  11. 软件测试工程师简历项目经验怎么写?1000套简历模板告诉你答案
  12. 身心灵觉醒视频汇总【建议收藏】
  13. 搜索结果Refinement 行为总结之 multi-selection refinement
  14. 【iTools】iTools Index
  15. Word 神器 python-docx
  16. View Programming Guide for IOS:Views笔记
  17. Linux常用命令cp详解
  18. 八数码难题的多种解法
  19. LeetCode刷题笔记汇总
  20. XXE(pikachu)

热门文章

  1. volatile关键字的作用
  2. apache lucene_Apache Lucene中的并发查询执行
  3. oidc_使用Java EE和OIDC构建Java REST API
  4. string拆分为int_拆分为流
  5. rxjava 并行_使用RxJava和Completable并行执行阻塞任务
  6. win7 activemq_带有骆驼,ActiveMQ,Elasticsearch的关键HL7用例
  7. jboss fuse 教程_IDC关于使用JBoss Fuse的商业价值的报告(与Apache Camel一起使用)
  8. junit测试线程_一个在自己的线程中运行测试的JUnit规则
  9. 通过这些简单的步骤从头开始学习Java
  10. javafx中的tree_JavaFX中的塔防