码迷,mamicode.com
首页 > 编程语言 > 详细

Spring IOC

时间:2020-03-22 19:43:09      阅读:70      评论:0      收藏:0      [点我收藏+]

标签: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生命周期(待补充源码,现在先死记硬背吧)

参考链接1

参考链接2

技术图片

实例化(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

 

Spring IOC

标签:logs   spring启动   存在   ebe   环境   info   eth   shu   mamicode   

原文地址:https://www.cnblogs.com/qmillet/p/12541120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!