cdi 作用 spring

简要概述了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 作用 spring

cdi 作用 spring_什么是CDI,它与@EJB和Spring有什么关系?相关推荐

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

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

  2. cdi 2.7.5_集成测试CDI 1.0和Spring 3.1中的作用域bean

    cdi 2.7.5 在这篇博客文章中,我描述了如何在Spring和CDI中使用作用域bean进行集成测试. 一切都用小代码示例进行说明. 使用范围进行集成测试并不是特别容易. 想象一下存在于会话范围内 ...

  3. Spring(一)--作用、IOC容器细节、搭配环境、Spring实验

    1.Spring作用:      1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!]      2.将其他组件粘合在一起      比如将S ...

  4. hashcode的作用_【09期】说说hashCode() 和 equals() 之间的关系?

    上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于"hashCode() 和 equals() 之间的关系?"的面试题, ...

  5. spring_在运行时更新代码(已Spring解密)

    spring 当从编译到部署再到测试的开发周期花费太长时间时,人们希望能够及时替换正在运行的代码,而无需重新启动应用程序服务器并等待部署完成. 在这种情况下,像JRebel这样的商业解决方案或像Gra ...

  6. java代码启动spring_从0开始学JAVA之《Spring框架-启动过程》

    本文是以初学者角度记录学习JAVA过程,无指导之意,如有错误,请各位大神不吝指教. 希望能够通过文章编写监督自我上进,与初学者共勉!!!上篇文章我们已经初步认识 Spring 框架,接下来我们结合实际 ...

  7. 依赖 netty spring_面试官:如何写好一个 Spring 组件?懵圈!

    背景 Spring 框架提供了许多接口,可以使用这些接口来定制化 bean ,而非简单的 getter/setter 或者构造器注入.细翻 Spring Cloud Netflix.Spring Cl ...

  8. j2ee 和 j2se_在J2SE应用中模拟CDI的会话和请求范围

    j2ee 和 j2se 我们目前正在考虑重构Naked Objects框架,以使用JSR-330(依赖注入)和面向EE的老大哥JSR-299(CDI). 使用香草JSR-330是不费吹灰之力的,但是我 ...

  9. 在J2SE应用程序中模拟CDI的会话和请求范围

    我们目前正在考虑将Naked Objects框架重构为使用JSR-330(依赖注入)和面向EE的老大哥JSR-299(CDI). 使用香草JSR-330是不费吹灰之力的,但是我们想利用JSR-299中 ...

最新文章

  1. 组件通信 eventtBus
  2. Zuul(SpringCloud学习笔记一)
  3. VS2015+OpenCV2.4.13环境搭建详细步骤及自带示例编译运行
  4. 计算机活动宣传稿,畅想科技,创造梦想 ——东华大学计算机科学与技术学院第十一届图灵科技文化节通讯稿...
  5. Mysql中用between...and...查询日期时注意事项
  6. 【UI/UX】桌面GUI设计
  7. swift 闭包的使用
  8. 部署邮件服务器之间相互通信
  9. OpenCV_连通区域分析----Two-Pass法
  10. PS、PR、AE、AI、AU区别
  11. causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation
  12. 卡耐基梅隆大学计算机工程录取率,卡耐基梅隆大学各学院专业录取数据来咯!...
  13. linux考试不及格反思100字,考试没考好的反思总结(精选10篇)
  14. Unity Shader PostProcessing - 8 - Bloom 泛光
  15. 30天突破英语口语!(MP3版)
  16. PHP实现MD5加密(16位加密和32位加密)
  17. 解决m3u8视频合并问题
  18. STM32F4单片机读取光电编码器的小理解
  19. 盲孔、通孔和埋孔的区别
  20. Linux网络之DHCP

热门文章

  1. bladex实现单点登录
  2. 计算男孩女孩小孩各有几个 java——CSDN博客
  3. JS中的map函数(会改变不是基本类型的数组的值)
  4. JS中函数和变量声明的提升
  5. linux入门_Linux超详细0基础入门篇(一)
  6. ReviewForJob——快速排序(基于插入排序)+快速选择(快速排序变体)
  7. java堆内与堆外数据交互_Java:汇总堆外数据
  8. 通用数据库管理工具_了解为什么这个直观的工具是您团队的通用团队管理工具...
  9. ubuntu安装jdk语句_JDK 12:实际中的切换语句/表达式
  10. java技术专家学习路线图_向Java最佳专家的全球专家学习Java