【问题标题】:Does JavaEE have Inversion of Control?JavaEE 有控制反转吗?
【发布时间】:2014-05-03 09:06:43
【问题描述】:

我的问题更多的是概念性的,而不是实际的。 我读过IoCDI,我认为我已经理解了这些概念(IoC比DI更通用,还有其他实现IoC的方法)。 在所有文章中,当提到 IoC 时,都会提到 Spring 等框架。

但是,如果 JavaEE 确实进行了控制反转,我没有看到任何地方。 所以,我想知道这一点,以便更好地消化这些概念。

我没有在搜索任何专业人士、反对人士等。

简单地说:

JavaEE 也有 DI,通过 CDI

  • JavaEE 是否被视为具有 IoC
  • 为什么?
  • 如果不是,那么它缺少什么?

【问题讨论】:

    标签: spring jakarta-ee dependency-injection inversion-of-control cdi


    【解决方案1】:

    CDI 是 JEE 的 IOC 的技术名称,由 JSR 299 指定: https://docs.oracle.com/javaee/6/tutorial/doc/giwhb.html

    【讨论】:

      【解决方案2】:

      IoC 中的依赖注入不是语言的特性,而是框架/平台/库的特性。因此,JEE 中的 DI 是控制反转的一个很好的例子,所以是的,JEE “拥有”它。

      不过,您应该明白,DI 并不是控制反转的唯一技术。另一个是,例如template method pattern

      编辑:This article 似乎是对 IoC 及其各种风格的一个很好的概述。

      【讨论】:

      • 但是语言是Java,JavaEE是规范、库等的集合。不是吗?为什么问 JEE 是否有它是错误的?
      • 这就是我所说的:“JEE 中的 DI 是控制反转的一个很好的例子”;) 作为旁注,this article 似乎是对 IoC 的一个很好的概述。它还指出“EJB 是这种控制反转风格的一个很好的例子。当您开发会话 bean 时,您可以实现由 EJB 容器在各个生命周期点调用的各种方法。”。
      • 好吧,既然你已经开始“DI不是一种语言的特征”,我想如果问这个甚至是错误的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      相关资源
      最近更新 更多