首页 > 其他分享 >Spring bean创建过程中的几个factory

Spring bean创建过程中的几个factory

时间:2024-03-26 13:45:38浏览次数:25  
标签:缓存 Spring factory 接口 bean 实例 创建

在SpringBoot启动过程中会去创建很多bean,然后交给IoC容器,创建的过程中涉及到几个比较容易混淆的factory如下

BeanFactory,FactoryBean,ObjectFactory

 

BeanFactory

是一个接口,是一个bean的工厂,能够创建bean(按照bean的生命周期来创建Spring中大部分的bean实例),并提供了获取bean实例的方法

 

 

FactoryBean

是一个接口,通过实现这个接口,能够自定义创建bean实例,不必按照bean的生命周期来创建bean

 

ObjectFactory

是一个函数式接口,用于Spring三级缓存,bean实例化以后就会加入三级缓存,三级缓存是以bean name未key, 函数式接口为value,在bean完成实例化(还未进行属性赋值)后就加入到三级缓存中,进行提前曝光,方便解决单例模式的循环依赖,在循环依赖中会去获取三级缓存中的value,得到实例化的bean或者bean的代理。

 

标签:缓存,Spring,factory,接口,bean,实例,创建
From: https://www.cnblogs.com/huainanyin/p/18096497

相关文章

  • springboot学习
    SpringBoot1SpringBoot2SpringBoot3SpringBoot4SpringBoot5SpringBoot6SpringBoot7shiro简介:入门:整合shiro导包写Controller报错点击查看代码org.thymeleaf.exceptions.TemplateInputException:Errorresolvingtemplate[index],templatemightnotexistor......
  • 线上gc问题-SpringActuator的坑
    整体复盘:一个不算普通的周五中午,同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看,很明显的问题就是内存不足,疯狂无效gc。而且结合arthas和gc日志查看,老年代打满了,gc不了一点。既然问题是内存问题,那么老样子,通过jmap和heapdump文件分析。不感兴趣的可以直接看结论......
  • 【常见错误】org.springframework.web.multipart.MultipartException request is not
    检查请求类型和内容类型MultipartException 错误通常发生在请求类型不是 multipart/form-data 或者内容类型不是预期的类型时。因此,要解决这个错误,需要确保请求的类型和内容类型正确。以下是一些检查步骤:检查请求类型确保发送到服务器的请求的HTTP方法为 POST,并且Cont......
  • Springboot项目的main函数入口,如何像jar包一样接受参数
    一般来说,springboot项目是提供服务的,但是也可以用到导出jar来启动,那么如何介绍参数呢:packagecom.example.TestDemo;importcom.example.jmeter.bean.TestCaseResult;importcom.example.jmeter.controller.JmeterController;importlombok.extern.slf4j.Slf4j;importorg.......
  • Springboot3基于SpringDoc实现接口分组功能
    问题最近在接触SpringBoot3,整合Swagger文档组件的过程中发现一个问题,通过springdoc.group-configs[0].display-name=示例接口配置分组名称在界面上面还是显示OpenAPIdefinition,如下图所示:查询了下官方文档,可以通过注入GroupedOpenApi对象实现接口分组描述信息展示,同时找到了一......
  • 06bg9springboot学生信息管理系统
    ......
  • 172基于springboot的二手车交易系统的设计与实现
    ......
  • SpringBoot+Aop实现业务操作日志demo
    1、建表CREATETABLE`business_log`(`id`bigintNOTNULLAUTO_INCREMENT,`name`varchar(100)NULLCOMMENT'业务名称',`description`varchar(255)NULLCOMMENT'业务操作描述',`operator`varchar(100)NULLCOMMENT'操作人',`oper_t......
  • 核心子方法6: registerBeanPostProcessors(beanFactory)方法详解
    先总结: 该方法用于创建并注册Bean后处理器,先获取创建beanFactory中的BeanPostProcessor, 排序后注册到beanFactory中(beanFactory.addBeanPostProcessor(postProcessor)), 用于后面创建bean对象时使用注: 这里不会调用执行BeanPostProcessor, 在创建bean对象getBean->doG......
  • 基于SpringBoot+Vue+uniapp微信小程序的乡村政务服务系统的详细设计和实现(源码+lw+部
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......