以XmlBeanFactory为例,最简单的取bean方式是:
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("D:\\workspace\\JavaApplication2\\src\\javaapplication2\\spring\\beans.xml"));
Car obj = (Car)factory.getBean("car");
Bean的配置文件内容也很简单:
<bean id="vehicle" abstract="true">
<property name="wheel" value="Four wheeler"/>
</bean>
<bean id="car" class="javaapplication2.spring.Car" parent="vehicle">
<property name="dicky" value="Flat dicky"/>
</bean>
先看起始点,载入先走AbstractBeanFactory
public Object getBean(String name) throws BeansException {
return doGetBean(name, null, null, false);
}
doGetBean方法中:
// Create bean instance.
if (mbd.isSingleton()) {
//传入一个内联类ObjectFactory并实现了getObject方法。
sharedInstance = getSingleton(beanName, new ObjectFactory() {
public Object getObject() throws BeansException {
try {
return createBean(beanName, mbd, args