首页 > 其他分享 >spring学习

spring学习

时间:2022-08-28 15:56:23浏览次数:58  
标签:装配 容器 spring 学习 Bean Spring IoC

pringBoot自动装配原理及分析

通过注解@SpringBootApplication=>@EnableAutoConfiguration=>@Import({AutoConfigurationImportSelector.class})实现自动装配

2)AutoConfigurationImportSelector类中重写了ImportSelector中selectImports方法,批量返回需要装配的配置类

3)通过Spring提供的SpringFactoriesLoader机制,扫描classpath下的META-INF/spring.factories文件,读取需要自动装配的配置类

4)依据条件筛选的方式,把不符合的配置类移除掉,最终完成自动装配

https://baijiahao.baidu.com/s?id=1725265949551075777&wfr=spider&for=pc

什么是自动装配

在使用SpringBoot的时候,会自动将Bean装配到IoC容器中。例如我们在使用Redis数据库的时候,会引入依赖spring-boot-starter-data-redis(成为启动器)。在引入这个依赖后,服务初始化的时候,会将操作Redis需要的组件注入到IoC容器中进行后续使用

自动装配大致过程如下:

  1. 获取到组件(例如spring-boot-starter-data-redis)META-INF文件夹下的spring.factories文件
  2. spring.factories文件中列出需要注入IoC容器的类
  3. 将实体类注入到IoC容器中进行使用

https://baijiahao.baidu.com/s?id=1725265949551075777&wfr=spider&for=pc

什么是ioc容器

IoC容器的概念

IoC容器就是具有依赖注入功能的容器,IoC具有负责实例化,定位,配置应用程序中的对象及建立这些对象之间的依赖。应用程序无需直接new相关对象,应用程序通过IoC容器进行组装。在Spring中IoC容器实际代表者是BeanFactory。
IoC容器怎么知道他管理那些对象,这就需要配置文件告诉他了。一般使用xml配置文件进行配置元数据,Spring IoC容器通过读取配置文件进行应用中各个对象实例化及装配。Spring与配置文件是完全解耦的,可以使用其他方式配置元数据,可以是注解、基于Java文件等。说到现在,Spring管理的对象叫什么呢?这是下一个需要介绍的——Bean

Bean的概念

由IoC容器管理的组成应用程序的那些对象就叫做Bean,Bean是由Spring容器初始化、装配及管理的对象,除此以外,与应用程序中的其他对象没有什么区别。Spring是通过配置元数据进行Bean的实例化,管理Bean之间的依赖关系以及管理Bean。

原文链接:https://blog.csdn.net/weixin_41676282/article/details/90743425

标签:装配,容器,spring,学习,Bean,Spring,IoC
From: https://www.cnblogs.com/rokkie2021/p/16632911.html

相关文章

  • cmake的install命令学习
    转自:https://blog.csdn.net/qq_38410730/article/details/1028374011.install命令install用于指定在安装时运行的规则。它可以用来安装很多内容,可以包括目标二进制、动态......
  • 前端学习-5
    目录JS获取用户输入值JS类属性操作JS样式操作事件JS事件案例jQuery类库jQuery基本使用基本筛选器表单筛选器8.26日小练习JS获取用户输入值普通数据(输入、选择) 标签对......
  • Spring 高级 @Autowired 失效分析
    一、失效演示1、正常情况packagecom.mangoubiubiu.show.a06;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;......
  • proto3学习
    转自:https://colobu.com/2017/03/16/Protobuf3-language-guide/#指定字段类型1.消息message类型假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、......
  • 使用Gradle构建spring-boot多模块项目
    一、目录结构.├──boogle-common│  ├──build.gradle.kts│  └──src├──boogle-core│  ├──build.gradle.kts│  └──src├──......
  • Spring5.2.x-06-Spring扫描原理
    在ConfigurationClassPostProcessor内部完成扫描在扫描的时候,为什么要用asm,如果直接用类,可能会把static里的直接执行了,spring尽量做到不直接影响用户(比如这......
  • Spring 高级 Aware 接口及 InitializingBean 接口
    一、Aware1、Aware接口的作用Aware接口提供了一种【内置】的注入手段,例如BeanNameAware注入bean的名字BeanFactoryAware注入BeanFactory容器ApplicationC......
  • Referenced file contains errors (http://www.springframework.org/schema/beans/spr
    Referencedfilecontainserrors(http://www.springframework.org/schema/beans/spring-beans-3.0.xsd)._faihtua的博客-CSDN博客 https://blog.csdn.net/faihtua/arti......
  • 低代码平台amis学习 二:写一个页面
    上一节完成了amis的部署,这次来写一个简单页面 如果看过amis入门文档的话,应该知道amis是通过json文件来生成前端页面的,在实际编写json文件的过程中,并不需要自己逐行书写j......
  • Spring 高级 工厂后处理器模拟实现-Mapper
    一、源方式自动注入packagecom.mangoubiubiu.show.a05;importcom.alibaba.druid.pool.DruidDataSource;importcom.mangoubiubiu.show.a05.component.Bean2;impor......