目录

1.Spring自动装配是什么?解决了什么问题?

2.自动装配实现原理:


1.Spring自动装配是什么?解决了什么问题?

自动装配就是让应用程序上下文为你找出依赖项的过程。说的通俗一点,就是Spring会在上下文中自动查找,并自动给bean装配与其关联的属性!

spring中实现自动装配的方式有两种,一种是通过xml文件、另一种是通过注解

Spring自动装配解决了Spring时代项目配置繁琐的问题,简化配置。

2.自动装配实现原理:

1.当启动Springboot应用程序的时候,会先创建SpringApplication对象,在对象的构造方法中会 进行某些参数的初始化工作,最主要的是判断当前应用程序的类型以及初始化器和监听器,在这个过程中会加载整个应用程序中的Spring.factories文件将文件内容放到缓存对象中,方便后续获取。

2.SpringApplication对象创建完成之后,开始执行run方法,来完成整个启动,启动过程中最主要的有两个方法,第一个叫做prepareContext,第二个叫做refreshContext,在这两个关键步骤中完成了自动装配的核心功能,前面的处理逻辑包含了上下文对象的创建banner的打印异常报告期的准备等各个准备工作,方便后续进行调用。

3.在prepareContext方法中主要完成的是对上下文对象的初始化操作,包括了属性值的设置,比如环境对象,在整个过程中有一个非常重要的方法,叫做load,load主要完成一件事,将当前启动类作为一个beanDefinition注册到registry中方便后续在进行BeanFactoryPostProcessor调用执行的时候,找到对应的主类,来完成@SpringbootApplication,@EnableAutoConfiguration等注解的解析工作。

4.在refreshContext方法中会进行整个容器的刷新过程,会调用Spring中的refresh方法,refresh中有13个非常关键的方法,来完成整个Spring应用程序的启动,在自动装配过程中,会调用invokeBeanFactoryPostProcessor方法,在此方法中主要是对ConfigurationClassPostProcessor类的处理,这是BFPP的子类也是BDRPP的子类,在调用的时候会先调用BDRPP中的postProcessBeanDefinitionRegistry方法然后调用postProcessBeanFactory方法,在执行postProcessBeanDefinitionRegistry的时候会解析处理各种注解,包含@PropertySource,@ComponentScans,@Bean,@Import等注解,最主要的是@Import注解的解析。

5.在解析@Import注解的时候,会有一个getImports的方法,从主类开始递归解析注解,把所有包含@Import的注解都解析到,然后在processImport方法中对Import的类进行分类,此处主要识别的是AutoConfigurationImportSelect归属于ImportSelect的子类,在后续过程中会调用deferredImportSelectHandler中的process方法,来完整EnableAutoConfiguration的加载

spring框架自动装配的原理相关推荐

  1. Spring Boot 自动装配的原理

    在Spring Boot中,不得不说的一个点是自动装配,它是Starter的基础,也是Spring Boot的核心,那么什么叫自动装配呢?或者说什么叫装配呢? 简单来说,就是自动将Bean装配到IoC ...

  2. Spring Boot自动装配原理详解

    目录 1.环境和依赖 1.1.spring boot版本 1.2.依赖管理 2.自动装配 2.1.流程概述 2.2.三大步前的准备工作 2.2.1.注解入口 2.2.2.获取所有配置类 2.3.获取过 ...

  3. Spring Boot自动装配过程解析及简单Demo演示

    文章目录 1.约定大于配置 2.自动装配原理 2.1.`@SpringBootApplication` 2.2.`@EnableAutoConfiguration` 2.3.`@Import` 2.4 ...

  4. Spring Boot - 自动装配中的不可忽视的@Import

    文章目录 Pre 四种处理方式 从@SpringBootApplication注解说起 @SpringBootApplication组合注解说明 @Target(ElementType.TYPE) @ ...

  5. spring Bean自动装配

    spring Bean自动装配 自动装配是使用spring满足bean依赖的一种方式. spring会在应用上下文中为某个bean寻找其依赖的bean. spring自动装配需要从两个角度来实现,或者 ...

  6. (Spring)自动装配bean

    文章目录 自动装配bean 1. 环境搭建 2. byName自动装配 3. byType自动装配 4. 使用注解自动装配 4.1 @Autowired和@Qualifier 4.2 @Resourc ...

  7. Spring autowire 自动装配简介

    Spring autowire 自动装配简介 注意本文与一般spring 标注@Autowire 无关 如下例子定义了3个类 Dperson Dcar & Daddress 其中Dperson ...

  8. Spring Autowire自动装配(转http://lep1985520.blog.163.com/blog/static/56600480200901441338486/)

    Spring Autowire自动装配 技术收藏 2009-01-14 16:13:38 阅读284 评论0   字号:大中小 订阅 Spring Autowire自动装配   在应用中,我们常常使用 ...

  9. Spring学习——自动装配

    自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean有三种装配机制,分别是: 在xml中显式配置 ...

最新文章

  1. 微软家浏览器挺有意思,大家体会一下
  2. 知识图谱实践篇(五):KBQA Demo
  3. 12月16日文章排行点评及编辑部训练
  4. php进程学习(一)
  5. easyui tab
  6. win10虚拟内存怎么设置最好_淘宝直通车时间段怎么设置?哪个时间段开最好?...
  7. oschina下载工具
  8. 芒果超媒:子公司与咪咕文化签署合作框架协议
  9. MySQL存储过程(五)——存储过程查看、删除和修改
  10. ApacheCN - 关于我们
  11. AS更换背景主题以及背景图片
  12. OWIN与Katana
  13. 【Netty-进阶】学习笔记
  14. VS2013中添加现有窗体项
  15. Eclipse所有快捷键
  16. Ubuntu 18.04 安装 NVIDIA 显卡驱动
  17. wndDL课程学习笔记
  18. Panabit镜像功能配合wireshark抓包的方法
  19. unity摄像机追踪屏幕抖动的问题
  20. 关于Cxp采集卡连接大面阵相机取图耗时问题研究

热门文章

  1. css3与android,Android开发人员不得不学习的CSS3基础
  2. 《图解tcp/ip 阅读笔记》
  3. Java基础学习之并发篇:哲学家就餐问题
  4. js的2021年节假日数据包括法定节假日
  5. Oracle 数据导入
  6. linux忘记密码之后如何重置密码
  7. 【Linux】【Vim操作指南2】| vim分屏快捷操作
  8. video在某些浏览器默认静音
  9. 郁闷的会计(非负整数转换成大写金额的拼音)
  10. 今日头条的推荐算法原理分析(转)