Bean容器
应用上下文
Spring应用中,对象生存于Spring容器当中,容器是Spring框架的核心,Spring容器使用依赖注入管理构成应用的组件,创建相互协作的组件之间的关联。
Spring容器:
Bean工厂:生存创建Bean对象
应用上下文:Application Context,应用上下文,一个更高级的Bean工厂,基于Bean工厂而建,并提供面向应用的服务。
Spring常用应用上下文:
ClassPathXmlApplicationContext
读取类路径下的XML配置文件并加上上下文定义
FileSystemXmlApplicationContext
读取文件系统下的XML配置文件并加上上下文定义
XmlWebApplicationContext
读取Web应用下的XML配置文件并加上上下文定义
Bean的生命周期
一个Bean从创建到销毁,如果是由BeanFactory来生成管理Bean的话,会经历以下几个阶段:
若容器实现了流程图中涉及的接口,程序将按照以上流程进行。需要我们注意的是,这些接口并不是必须实现的,可根据自己开发中的需要灵活地进行选择,没有实现相关接口时,将略去流程图中的相关步骤。
Bean的建立:容器寻找Bean的信息并将其实例化
属性注入:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性
BeanNameAware的setBeanName():如果Bean类有实现org.springframework.beans.BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。
BeanFactoryAware的setBeanFactory():如果Bean类有实现org.springframework.beans.factory.BeanFactoryAware接口,工厂调用setBeanFactory()方法传入工厂自身。
。。。。。。
简单的来说:
注册Bean到Bean工厂或者应用上下文
根据注册信息创建Bean实例
装配并注入Bean的属性
调用Bean(由此可见,Bean在调用之前就已经初始化了)
销毁Bean