电脑怎么做网站服务器,网站公司名称大全,中国纪检监察报邮箱,建筑设计公司资质等级一、 IOC 的概念
Spring 的 IOC #xff0c;即控制反转#xff0c;所谓控制反转 —— 本来管理业务对象#xff08;bean#xff09;的操作是由我们程序员去做的#xff0c;但是有了 Spring 核心容器后#xff0c;这些 Bean 对象的创建和管理交给我们Spring容器去做了即控制反转所谓控制反转 —— 本来管理业务对象bean的操作是由我们程序员去做的但是有了 Spring 核心容器后这些 Bean 对象的创建和管理交给我们Spring容器去做了也就是控制权由程序员变成了容器。Spring 通过 Java 语言的反射机制实现实例化 Bean 并建立 Bean 之间的依赖关系。除此之外Spring IOC 还提供 Bean 实例缓存生命周期管理Bean 实例代理等高级服务。
二、 高层视图
Spring 应用启动时读取 Bean配置信息在容器中生成注册表然后根据注册表去实例化 Bean再将实例化好的 Bean 放入 Spring 容器的 Bean 缓存池中为上层应用程序使用。 三、 实现
BeanFactory 面向 Spring 本身 ApplicationContext 面向使用 Spring 框架的开发者。
BeanFactory BeanDefinitionRegistry 注册表
Spring 配置的每一个 Bean 通过 BeanDefination 表示描述了 Bean 的配置信息BeanDefinitionRegistry 提供了向容器中注册 BeanDefination 的方法。
BeanFactory
getBean() 从容器中获取指定名称的 Bean
ListableBeanFactory : 提供访问容器 Bean 信息的方法HierarchicalBeanFactory : 父子级联 实现子容器可以访问父容器的 Bean但是父容器不能访问子容器的 BeanConfifurableBeanFactory : 增强了IOC容器的定制性。SingletonBeanFactory : 允许运行时向容器中注册单例 Bean
ApplicationContext
ApplicationContext 由 BeanFactory 派生而来提供了更多面向实际应用的功能
比如从类路径加载配置文件等 … 四、 Bean 的作用域和生命周期
作用域
Singleton : 单例模式全局只有一个对象多线程下不安全Prototype : 原型模式在每次使用时创建每个 Bean 有自己的属性和状态Request : 一次 Request 中一个实例SessionGlobal Session
生命周期
实例化IOC 依赖注入setBeanNameBeanFactoryAwareApplicationContentAware接口实现-初始化预处理初始化方法postProcessAfterInitialization过期自动清理/自动配置清理