什么是bean,IoC和DI?

时间:2019-02-21 14:03:43

标签: spring

我最近开始学习Spring,开始阅读并与bean,ioc和di会面,我不太了解它们的工作方式,我编写了自己编写的现成的spring程序,但是ioc是如何工作的,我没有了解普通班级的区别是什么?)您能用简单的例子解释一下吗?我将很高兴收到所有答复,非常感谢您

1 个答案:

答案 0 :(得分:3)

这里已经做了一个快速的解释,因为您已经申请了。这是在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)类,并注入这两个{{1} }和Bar转换成Baz(DI)。因此,这些实例是Foo,由Spring(IoC)管理。

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

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