网站开发支付功能,想在网站上放百度广告怎么做,学科专业建设规划,公司网站制作公司Spring IOC的工作流程
好的#xff0c;这个问题我会从几个方面来回答。
IOC是什么
Bean的声明方式
IOC的工作流程
IOC的全称是 Inversion Of Control,也就是控制反转#xff0c;它的核心思想是把对象的管理权限交给容器。#xff08;展示图 1#xff09;
…Spring IOC的工作流程
好的这个问题我会从几个方面来回答。
IOC是什么
Bean的声明方式
IOC的工作流程
IOC的全称是 Inversion Of Control,也就是控制反转它的核心思想是把对象的管理权限交给容器。展示图 1
动态出现图 2应用程序如果需要使用到某个对象实例直接从 IOC容器中去获取就行这样设计的好处是降低了程序里面对象与对象之间的耦合性。
使得程序的整个体系结构变得更加灵活。 Spring里面很多方式去定义 Bean如图比如 XML里面的〈bean〉标签、Service、Component、Repository、Configuration配置类中的Bean注解等等。
Spring在启动的时候会去解析这些 Bean然后保存到 IOC容器里面。 Spring IOC的工作流程大致可以分为两个阶段。
第一个阶段就是 IOC容器的初始化
这个阶段主要是根据程序中定义的 XML或者注解等 Bean的声明方式
如图通过解析和加载后生成 BeanDefinition然后把 BeanDefinition注册到 IOC容器。 通过注解或者 xml声明的 bean都会解析得到一个 BeanDefinition实体实体中包含这个 bean中定义的基本属性。
最后把这个 BeanDefinition保存到一个 Map集合里面从而完成了 IOC的初始化。
IoC容器的作用就是对这些注册的 Bean的定义信息进行处理和维护它 IoC容器控制反转的核心。
第二个阶段完成 Bean初始化及依赖注入
然后进入到第二个阶段这个阶段会做两件事情如图
1.通过反射针对没有设置 lazy-init属性的单例 bean进行初始化。
2.完成 Bean的依赖注入。 第三个阶段Bean的使用
如图通常我们会通过Autowired或者 BeanFactory.getBean(从 IOC容器中获取指定的 bean实例。
另外针对设置 layy-init属性以及非单例 bean的实例化是在每次获取 bean对象的时候调用 bean的初始化方法来完成实例化的并且 Spring IOC容器不会去管理这些 Bean。 借鉴B站 Mic 【Java面试】请你介绍一下Spring IOC的工作流程看看教科书式版的回答_哔哩哔哩_bilibili