Spring实例化bean的三种方式
1.用构造器来实例化
<bean id="hello2" class="com.hsit.hello.impl.ENhello" />
2.使用静态工厂方法实例化
<bean id="hello1" class="com.hsit.hello.impl.CHhello" factory-method="createInstance" lazy-init="true">
<!-- setter注入 -->
<property name="msg" value="哈哈">
</property>
</bean>
3.使用实例工厂方法实例化
<bean id="eHelloFactory" class="com.hsit.hello.impl.ENhelloFactory" />
<!-- factory-bean填上工厂bean的id,指定工厂bean的工厂方法生成实例,class属性不填 -->
<bean id="example" factory-bean="eHelloFactory" factory-method="createInstance"/>
Spring实例化bean大致的过程
1.通过解析xml,获取里面的bean;
2.将获取的dom对象映射成dao对象塞入数组中;
3.循环遍历对象数组,通过Java反射机制映射成对应的JavaBean 对象;
4.将对象放入map中,将id的值设为key,对应的对象设置为map的value
Spring作用域:
当scope =single即懒加载,在Spring容器启动的时候实例化;
当scope=prototype时,实在bean对象调用的时候 进行实例化;
默认lazy-init=true;Spring启动时不进行bean的实例化。