用简单的外行人的话来说,getBean在Spring中做了什么?

时间:2011-12-15 21:19:15

标签: java spring

考虑一行像这样的代码

AutomobileDriver ad=(AutomobileDriver)appContext.getBean("increaseSpeed");

假设有IncreaseSpeed类继承自AutomobileDriver

getBean做什么?这个的主要功能是什么?

4 个答案:

答案 0 :(得分:4)

以“简单的外行人的名义”:

  1. 这假设Spring被告知要创建一个对象实例(可能在XML配置文件中),该对象实例(由Spring标识)与id“increaseSpeed”一样,并且具有{{1的类或父类}}

  2. 您要求Spring上下文引用(a)默认情况下,先前创建的对象(这称为单例)或(b)该对象的新实例(原型)。

答案 1 :(得分:2)

在Spring中,您可以定义一个bean并为其指定一个id。通常,Spring希望您使用依赖注入来访问bean。但是,Spring提供了getBean作为通过其id访问bean的另一种方式。

基本上,您的代码将返回ID为“increaseSpeed”的bean实例。

答案 2 :(得分:2)

此代码从Spring Application Context请求名为increaseSpeed的bean。将应用程序上下文视为可用对象池,它是从Spring配置XML配置的。启动应用程序上下文时,它会在配置中创建bean。这个电话只是要求已经存在的那个。应用程序上下文将此“bean”作为java.lang.Object返回,因此您必须将其强制转换为适当的类型。

您可能会将此调用视为Spring应用程序中的入口点。需要此调用才能从应用程序上下文中获取第一个对象 - 从此处,此对象可能具有指向Spring已注入的其他对象的链接。

答案 3 :(得分:1)

bean是一个提供某些功能的组件,bean的名称表示它会提高速度。

这些组件在称为“应用程序上下文”的上下文中注册,可以按名称查找。因此,如果您想提高速度,请查看您的应用程序上下文,以获取可执行此操作的内容。

更多技术:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/