首页 > 编程语言 >Spring源码分析之BeanFactory

Spring源码分析之BeanFactory

时间:2023-04-28 16:57:37浏览次数:35  
标签:BeanFactory Spring Bean 源码 标签 BeanDefinitionRegistry 解析 BeanDefinition

概述

  • 以XmlBeanFactory为例分析
  • Xml描述的Bean被Reasource加载到内存,先解析为Document对象,再解析为BeanDefinition注册到BeanDefinitionRegistry,再通过BeanFactory创建
    • 名词解释
      • Resource是Spring对资源的抽象,主要是用来读取文件输入流
      • Document是java本身的API进行解析的,得到的Dodument对象为XML文件的映射
      • BeanDefinition对象是XML文件中标签的封装
      • BeanDefinitionRegistry 主要作用是使用map保存BeanDefinition
      • BeanFactory主要负责创建对象
    • 解析xml
      • 如果想要通过自定义的xml标签注册Bean,在此阶段完成,如mvc标签、tx标签
    • 创建对象
      • 如果想要扩展Bean创建各阶段,在此阶段完成,如AOP创建代理、Autowired注解支持
    • XmlBeanFactory实现了BeanDefinitionRegistry和BeanFactory,因此可以直接传入XML文件,获取Bean
    • ApplicationContext实现了BeanFactory并添加了扩展功能,核心容器还是由BeanFactory完成

解析xml

创建对象

标签:BeanFactory,Spring,Bean,源码,标签,BeanDefinitionRegistry,解析,BeanDefinition
From: https://www.cnblogs.com/zby9527/p/17362610.html

相关文章

  • Spring XML配置的12个技巧
    Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。Spring利用依赖注入可以获得简单而有效的测试能力。Springbeans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进......
  • Unity+SenseAR教程:用手势发射爱心【源码】
    摘要:Unity+SenseAR2.3开发的AR应用,基于手势识别功能,发射你的爱心~洪流学堂,让你快人几步。你好,我是你的技术探路者郑洪智,你可以叫我大智。今天开头就不絮叨了,一句“名言”送给大家,然后咱们把代码微微的一写。“虽然今天是情人节,但怎会比学习带来更多的多巴胺呢?”——澹深苟最终效果......
  • springcloud gateway filter 重写response
     importorg.reactivestreams.Publisher;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.cloud.gateway.filter.GatewayFilterChain;importorg.springframework.cloud.gateway.filter.GlobalFilter;importorg.springfram......
  • Maven指令打包SpringBoot项目提示没有主清单文件
    Maven指令打包SpringBoot项目提示没有主清单文件原文链接:https://blog.csdn.net/greedystar/article/details/86068314项目打包为Jar后,通过java-jarxxxxx.jar运行时提示xxxxx.jar中没有主清单属性,如下:打开jar包,META-INF目录下的MANIFEST.MF,内容如下:Manifest-Version:1.0A......
  • 在线直播系统源码,实现在图片上涂鸦并记录涂鸦轨迹
    在线直播系统源码,实现在图片上涂鸦并记录涂鸦轨迹1.activity_main.xml界面 <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-au......
  • Spring理解及源码框架
    1、容器与Bean容器理解从这张图能看到重要容器有BeanFactoryConfigurableApplicationContext它们的关系是ConfigurableApplicationContext间接继承了ApplicationContext然后间接继承了BeanFactoryBeanFactory从侧面看到Spring有在用工厂模式。除此之外spring还用了单例模式、......
  • Unknown run configuration type SpringBootApplicationConfigurationType;Servlet Ser
    UnknownrunconfigurationtypeSpringBootApplicationConfigurationType社区版的idea自己安装插件,去配置大家可分享关于Java微服务相关知识,包括但不限于Java微服务开发经验、架构组成、技术交流、中间件等内容,我们鼓励springcloud架构为基础发散出击,从而达到技术积累的目的,快来沉......
  • graalvm spring 打包成exe
    graalvmjdk下载https://www.graalvm.org/downloads/把graalvm加入环境变量和就是JAVA_HOME安装native-imagegu.cmdinstallnative-image问题:Error:Defaultnative-compilerexecutable'cl.exe'notfoundviaenvironmentvariablePATHError:Topreventnative-too......
  • 详解八大排序(附动图和源码)
    目录......
  • 如何实现Spring中服务关闭时对象销毁执行代码
    spring提供了两种方式用于实现对象销毁时去执行操作1.实现DisposableBean接口的destroy2.在bean类的方法上增加@PreDestroy方法,那么这个方法会在DisposableBean.destory方法前触发3.实现SmartLifecycle接口的stop方法packagecom.wyf.service;importorg.springframework.be......