什么是bean,IoC和DI?

问题描述 投票:0回答:1

我最近开始学习春天,开始阅读并遇到了bean,ioc和di,我不太明白他们是如何工作的,我有自己写的现成的春季课程,但ioc如何在那里工作我不明白是什么差异是正常的,它是什么?)你能用简单的例子解释一下吗?我将很高兴得到所有答案,非常感谢你

spring
1个回答
3
投票

这里有一个快速的解释,因为你已经提出了一个应用程序。这是在Spring应用程序的上下文中,因为这3个概念的应用取决于您所在的框架/上下文。

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

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

Bean是Framework管理的对象。

这是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的两个实例注入Foo(DI)。因此,这些实例是由Spring(IoC)管理的Beans

如果你需要一个bean(一个服务),你将不得不问框架(使用像context.getBean(foo)这样的东西):你不应该在任何地方做new Foo()。 Spring保留所有这些实例的内部映射。

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

© www.soinside.com 2019 - 2024. All rights reserved.