千家信息网

Spring IOC有哪些知识点

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Spring IOC有哪些知识点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spring IOC有哪些知识点"吧!AbstractAp
千家信息网最后更新 2026年11月03日Spring IOC有哪些知识点

本篇内容主要讲解"Spring IOC有哪些知识点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spring IOC有哪些知识点"吧!

AbstractApplicationContext的refresh()方法是spring的核心,在其中完成了容器的初始化。我们先简单看下业务Bean的声明流程:

业务Bean的流程只是refresh函数中关于业务Bean创建的一个item,不过大致流程都是类似的。

IOC 大致流程

spring容器的入口refresh()

  1. prepareRefresh():刷新前的预处理

  1. initPropertySources():初始化一些属性设置;子类自定义个性化的属性设置方法

  2. getEnvironment().validateRequiredProperties():检验属性的合法性等

  3. this.earlyApplicationEvents = new LinkedHashSet<>();保存容器中的一些早期的事件

  1. obtainFreshBeanFactory()

获取beanFactory实例

  1. refreshBeanFactory();刷新或创建beanFactory

  2. getBeanFactory():将刚生成的beanFactory返回

  1. prepareBeanFactory(beanFactory):

beanFactory预准备工作,(以上创建的beanFactory好多属性没有值,只有一些默认的值)

  1. beanFactory.setBeanClassLoader(getClassLoader());设置BeanFactory的类加载器

  2. beanFactory.setBeanExpressionResolver:支持相关的表达式语言的解析

  3. ignoreDependencyInterface:设置忽略的自动装配接口 EnvironmentAware EmbeddedValueResolverAware

    1. beanFactory.registerResolvableDependency:注册可以解析的自动装配:我们能直接在任何组件中自动注入 BeanFactory ApplicationContext

  4. beanFactory.addBeanPostProcessor(new ApplicationListenerDetector(this));添加监听检测的处理器

    1. if (!beanFactory.containsLocalBean(ENVIRONMENT_BEAN_NAME)):注册环境变量相关bean

  1. postProcessBeanFactory(beanFactory)

子类通过重写这个方法来实现自己的业务逻辑。

PS: 通过上面准备BeanFactory的创建跟准备完成
5. invokeBeanFactoryPostProcessors(beanFactory)

执行BeanFactoryPostProcessor的后置处理器。是在2 跟3 滞后执行的。这里有两个接口需要实现 BeanFactoryPostProcessor跟BeanDefinitionRegistryPostProcessor。

  1. registerBeanPostProcessors(beanFactory)

实例化和注册beanFactory中扩展了BeanPostProcessor的bean。功能就是拦截我们业务Bean创建通过注解动态代理的方式进行增强,,可参考 AOP 流程,

  1. initMessageSource()

标签国际化资源,初始化MessageSource(国际化功能:消息解析,消息绑定)

  1. initApplicationEventMulticaster()

初始化事件派发器,

  1. onRefresh()

用来留给子类重写的方法,当容器刷新的时候可以自定义逻辑。

  1. registerListeners()

给容器中将所有项目的ApplicationListener 注册进来。

  1. finishBeanFactoryInitialization(beanFactory)

将项目中所以非懒加载的单实例Bean进行初始化加载,具体在 AOP 流程也跟过了。

  1. finishRefresh()

refresh做完之后需要做的其他事情。清除上下文资源缓存(如扫描中的ASM元数据)
初始化上下文的生命周期处理器,并刷新(找出Spring容器中实现了Lifecycle接口的bean并执行start()方法)。发布ContextRefreshedEvent事件告知对应的ApplicationListener进行响应的操作

大致流程: 刷新下做一些预处理工作,BeanFactory实例化,BeanFactory若干参数赋值,BeanFactory的后置处理器,一些注解Bean的注册操作,国际化,事件发布机制,监听机制,业务Bean的创建。 涉及到单例模式,工程模式,适配器模式,以及动态代理等等。

IOC核心流程图

图片较大如看不清,可公众号【SoWhat1412】回复AOP获得高清图片

到此,相信大家对"Spring IOC有哪些知识点"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

流程 业务 容器 方法 事件 处理器 实例 属性 处理 知识 知识点 国际 子类 接口 模式 准备 上下 上下文 内容 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 互联网科技公司起名 云信互联网科技有限公司 美国互联网科技 远信互联网科技 互联网科技网站 互联网科技类展会 海南科技产业互联网平台 宁波青枫互联网科技有限公司 河南猎农互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 哈尔滨屹滨互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 长沙茂晟互联网科技有限公司 互联网时代的科技公司 上海同邻互联网科技有限公司规模 广州梦谷互联网科技有限公司领导 互联网金融运营模式中的金融科技 广州三三互联网科技有限公司 伍佰万互联网科技是干嘛的 互联网科技企业 互联网的科技 广州互联网科技公司 中国 科技 互联网 无线互联网科技 顺玮阁互联网科技 杭州壁岐互联网科技有限公司 浙南科技城互联网大厦建设工程 翼展科技 首家互联网医院 互联网科技机房
0