当前位置: 首页> 房产> 政策 > 商丘微信推广平台_海外推广引流_推广营销软件app_建筑设计网站

商丘微信推广平台_海外推广引流_推广营销软件app_建筑设计网站

时间:2025/7/11 8:33:38来源:https://blog.csdn.net/qq_62097431/article/details/143409674 浏览次数:0次
商丘微信推广平台_海外推广引流_推广营销软件app_建筑设计网站

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

关键字:商丘微信推广平台_海外推广引流_推广营销软件app_建筑设计网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: