标签:logs spring启动 存在 ebe 环境 info eth shu mamicode
一、什么是IOC
DI全称Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件。j具体有构造器注入、setter注入、静态工厂注入、实例工程注入。
IOC全称 Inverse of Control ,控制反转。就是将系统中创建对象的控制权由Spring管理。Spring通过一个配置文件描述Bean和Bean之间的关系,利用反射功能实例化Bean并建立Bean之间的依赖关系。Spring IOC容器除了完成这些底层工作,还提供了Bean实例缓存、生命周期管理等服务。
Bean在Spring容器中的大概流程:Spring启动时读取Bean配置信息,并在Spring容器中生成一份相应的 Bean 配置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准备就绪的运行环境。其中 Bean 缓存池为 HashMap 实现。
二、Bean生命周期(待补充源码,现在先死记硬背吧)
实例化(Instantiation) —— 属性赋值 (Populate)—— 初始化 (Initialization)—— 销毁(Destructio)
1.实例化一个Bean对象
2.为Bean设置相关的属性和依赖
3.如果Bean实现BeanNameAware 执行 setBeanName
4.如果Bean实现BeanFactoryAware 执行setBeanFactory ,获取Spring容器
5.如果存在类实现 BeanPostProcessor(前置处理) ,执行postProcessBeforeInitialization
6.如果Bean实现InitializingBean 执行 afterPropertiesSet
7.调用<bean init-method="init"> 指定初始化方法 init
8.如果存在类实现 BeanPostProcessor(后置处理) ,执行postProcessAfterInitialization
执行业务处理
9.如果Bean实现 DisposableBean 执行 destroy
101.调用<bean destroy-method="customerDestroy"> 指定销毁方法 customerDestroy
标签:logs spring启动 存在 ebe 环境 info eth shu mamicode
原文地址:https://www.cnblogs.com/qmillet/p/12541120.html