Spring中的Bean获取与实例化

来源:互联网 发布:知乎红人 编辑:程序博客网 时间:2024/06/08 02:14



ApplicationContext与BeanFactory关系






ApplicationContext它是扩展BeanFactory接口。

BeanFactory它采取延迟加载的方案,只有真正在getBean时才会实例化Bean

 


在开发中我们一般使用的是ApplicationContext,真正使用的是其实现类,

FileSystemXmlAppliCationContext 根据文件路径获取

ClassPathXmlApplicationContext  根据类路径获取

AppliCationContext它会在配置文件加载时,就会初始化Bean,并且ApplicationContext它提供不同的应用层的Context实现。例如在web开发中可以使用WebApplicationContext.





Bean的实例化方式

无参数构造

对于这种方式,注意Bean类中必须提供无参数构造。




静态工厂方法

需要创建一个工厂类,在工厂类中提供一个static返回bean对象的方法就可以。




实例工厂方法

需要创建一个工厂类,在工厂类中提供一个非static的创建bean对象的方法,在配置文件中需要将工厂配置,还需要配置bean