Spring Bean的获取与实例化
程序员文章站
2022-06-04 23:41:40
...
ApplicationContext与BeanFactory关系
ApplicationContext它是扩展BeanFactory接口。
BeanFactory它采取延迟加载的方案,只有真正在getBean时才会实例化Bean
我们一般使用的是ApplicationContext,真正使用的是其实现类,
FileSystemXmlAppliCationContext 根据文件路径获取
ClassPathXmlApplicationContext 根据类路径获取
AppliCationContext它会在配置文件加载时,就会初始化Bean,并且ApplicationContext它提供不同的应用层的Context实现。例如在web开发中可以使用WebApplicationContext.
Bean的实例化方式
无参数构造
对于这种方式,注意Bean类中必须提供无参数构造。
<bean name="bean1" class="com.nwtxxb.bean.Bean1"></bean>
静态工厂方法 需要创建一个工厂类,在工厂类中提供一个static返回bean对象的方法就可以。
配置文件
<bean id="bean2" class="com.nwtxxb.bean.Bean2Factory" factory-method="createBean2"></bean>
实例工厂方法
需要创建一个工厂类,在工厂类中提供一个非static的创建bean对象的方法,在配置文件中需要将工厂配置,还需要配置bean
<!--配置实例工厂-->
<bean name="bean3Factory" class="com.niwotaxuexiba.bean.bean3Factory"></bean>
<bean name="bean3" factory-bean="bean3Factory" factory-method="createBean3"></bean>