首页 > 其他分享 >spring容器加载

spring容器加载

时间:2023-09-01 12:14:40浏览次数:28  
标签:装配 容器 依赖 spring Bean 加载

1:准备加载Bean工厂---首先肯定告诉我们的程序,我需要加载容器了,从哪里开始加载,可能是从classpath(XML)或者Annotation(注解),接着spring会执行refresh()方法

这个方法首先会判断当前是否有容器,如果有的话就关闭,没有就创建

2:获得Bean工厂-----spring会解析我们的配置文件,把配置信息,解析成BeanDefinitions

3:创建Bean工厂-----会忽略实现了AWAY接口的特殊SET方法的自动装配,为什么会忽略,因为需要使用AWAY接口SET的这些属性,不依赖自动装配,也不能依赖自动装配,

为什么不能依赖自动装配,比如这些这些特殊属性中,有一个是存放spring容器,那么此时我这个容器还没创建好,就没办法把容器给这个属性,所有会忽略

这些特殊的属性Spring会在某个时间给他装配上

4:Bean工厂创建完成后可以我们做一些特殊的操作,比如打印一句话

5:加载Bean的时候,每一个Bean加载完成后我们可以做一些自己的扩展,比如Aop,在加载Bena的时候会有前置通知,init初始化,后置通知

    这样下来bean就初始化结束了,当然循环依赖除外,如果发生了循环依赖,spring有一套处理方案就是,3级缓存,

标签:装配,容器,依赖,spring,Bean,加载
From: https://www.cnblogs.com/lly-rainbow/p/17506608.html

相关文章

  • docker查看镜像、运行容器、端口映射
    查看镜像dockerimagesdockerimagels查看容器dockerps查看所有容器dockerps-a运行镜像dockerrun[options]image-d后台-i交互式shell-t为容器重新分配伪输入终端,和-i同时使用端口映射-p[hostip:]hostport:containerport......
  • springcloud 跨域问题解决
    问题原因跨域本质是浏览器基于同源策略的一种安全手段同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能所谓同源(即指在同一个域)具有以下三个相同点协议相同(protocol)主机相同(host)端口相同(port)反之非同源请求,也就是协议、端口、主机其中一项不相同的......
  • 【HarmonyOS】一文教你如何使用低代码平台网格布局动态加载数据
    【关键字】低代码平台、AGC、API6、网格布局、数据模型 【写在前面】正式开工之前,先来说一下今天要实现的内容,今天会实现一个网格布局的展示,我会创建一个数据模型,然后网格列表的数据从数据模型中获取,从而实现一个动态展示的效果。在实现之前,先来简单说一下什么是数据模型?在......
  • Spring 相关 Maven 依赖包
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache......
  • SpringAMQP--消息转换器
        ......
  • SpringAMQP--TopicExchange
             ......
  • SpringAMQP-WorkQueue模型
          ......
  • SpringBoot使用protobuf格式的接口方式
    建立SpringBoot项目,pom.xml内容如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="......
  • springboot 使用RestTemplate调用get api,传入参数
    getapi:@ResponseBody@ResponseStatus(HttpStatus.OK)@GetMapping(value="/checkGetApi")@ApiOperation(value="checkgetapimethod")publicJSONObjectcheckGetApi(IntegeruserName){JSONObjectresult=......
  • springboot整合redis,连接两个redis
    在SpringBoot中,可以使用RedisTemplate进行Redis的连接和操作。要连接多个Redis实例,你可以创建多个RedisTemplate实例,并通过配置不同的连接工厂来连接到不同的Redis实例。首先,在application.properties(或application.yml)配置文件中添加Redis连接信息:#第一个Redis......