【问题标题】:What is a bean, IoC and DI?什么是 bean、IoC 和 DI?
【发布时间】:2019-07-15 11:22:32
【问题描述】:

我最近开始学习spring,开始看书,遇到了bean,ioc和di,我不太明白它们是怎么工作的,我有自己写的现成的spring程序,但是ioc是怎么工作的我不知道了解普通班的区别是什么?)你能用简单的例子解释一下吗?我会很高兴所有的答案,非常感谢你

【问题讨论】:

标签: spring


【解决方案1】:

这里有一个简单的解释,因为您已经提出了申请。这是在 Spring 应用程序的上下文中,因为这 3 个概念的应用不同,具体取决于您所在的框架/上下文。

IOC 是控制反转。这意味着应用程序本身不会管理它的生命周期/控制流。框架(Spring)将。因此,您只需告诉框架您希望应用程序的(某些)元素如何协同工作。

DI 是依赖注入。它是一种特定类型的 IOC,框架将管理对象使用的依赖项(您可以称为依赖项:服务)。

Bean 是由框架管理的对象。

这是 applicationContext.xml 的一部分:

 <beans>
  <bean id="foo" class="x.y.Foo">
      <constructor-arg ref="bar"/>
      <constructor-arg ref="baz"/>
  </bean>

  <bean id="bar" class="x.y.Bar"/>
  <bean id="baz" class="x.y.Baz"/>

</beans>

它将使用该文件将FooBarBaz (IoC) 类实例化,并将BarBaz 的实例注入 到@987654328 中@ (DI)。因此,这些实例是 Beans,由 Spring (IoC) 管理。

如果您需要 bean(服务),则必须询问框架(使用 context.getBean(foo) 之类的东西):您不应该在任何地方做 new Foo()。 Spring 保留所有这些实例的内部映射。

同样,它是在 Spring 应用程序的上下文中。例如,如果您使用的是 JEE 应用程序,这些定义会略有不同。

【讨论】:

  • 我是春天的新手。你能说出为什么将对象管理委托给 spring 并使用 IoC 是件好事吗
  • @Ali 您可以查看这个问题,该问题更深入地了解 IoC 的优势(无论是弹簧还是任何其他框架):softwareengineering.stackexchange.com/questions/131446/…
猜你喜欢
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多