考虑一行像这样的代码
AutomobileDriver ad=(AutomobileDriver)appContext.getBean("increaseSpeed");
假设有IncreaseSpeed
类继承自AutomobileDriver
类
getBean
做什么?这个的主要功能是什么?
答案 0 :(得分:4)
以“简单的外行人的名义”:
这假设Spring被告知要创建一个对象实例(可能在XML配置文件中),该对象实例(由Spring标识)与id“increaseSpeed”一样,并且具有{{1的类或父类}}
您要求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/