首页 > 其他分享 >Spring配置文件的加载、解析

Spring配置文件的加载、解析

时间:2024-06-15 21:11:18浏览次数:20  
标签:BeanPostProcessor 封装 配置文件 Spring 加载 解析 BeanDefinition

Spring的核心流程是读取配置文件,解析并封装成BeanDefinition,并将所有的BeanDefinition收集到一个叫DefaultListableBeanFactory的容器中。

一、setConfigLocation
设置配置路径方便后续对其进行解析

二、refresh方法,解析并封装BeanDefinition
该方法中有几个重要的方法
1.obtainFreshBeanFactory() 解析配置文件,并解析bean标签收集封装成BeanDefinition,将BeanDefinition封装到DefaultListableBeanFactory中

2.prepareBeanFactory()
初始化一些基本的类到BeanFactory中,或者将该BeanFactory注入到其他组件中,如
Resolver、Registrar、Processor、Aware、Dependency,下图所示

3.postProccessBeanFactory()
添加web相关的ServletContextAwareProcessor到容器

4.invokeBeanFactoryPostProcessors()
获取容器中所有实现BeanDefinitionRegistryPostProcessor的类对象(字面理解就是BeanDefinition的注册器),并完成postProcessBeanDefinitionRegisry的方法调用,最终完成BeanDefinition的注册

5.registerBeanPostProccessors
获取所有BeanPostProcessor的BeanDefinition对象,再通过getBean进行实例化BeanPostProcessor对象,然后按照排序规则重新封装成BeanPostProcessor对象集合

6.finishBeanFactoryInitialization
对非抽象的、单例的、非懒加载的BeanDefinition进行getBean实例化

标签:BeanPostProcessor,封装,配置文件,Spring,加载,解析,BeanDefinition
From: https://www.cnblogs.com/velloLei/p/18249724

相关文章

  • spring-2-依赖注入、循环依赖、三级缓存
    参考:SpringBoot———自动装配原理Spring依赖注入有几种?各有什么优缺点?Spring注解@Resource和@Autowired区别Spring是如何解决循环依赖问题?第二次讲Spring循环依赖,时长16分钟,我保证每一秒都是精华1.依赖注入1.1依赖注入的方式方式优点缺点适用场景属性注入......
  • Spring AOP
            AOP(AspectOrientedProgramming):面向切编程。是对某⼀类事情的集中处理,例如网站的登录验证,不使用AOP的话发布文章需要一段代码进行验证、编辑文章需要验证......而使用AOP的话只需要在某⼀处配置⼀下,需要验证的地方都可以实现了。        AOP是......
  • spring boot(学习笔记第七课)
    springboot(学习笔记第七课)配置AOP,数据库操作(jdbcTemplate)学习内容:配置AOP数据库操作(jdbcTemplate)1.配置AOP如果想要在一些既存系统上对系统进行分析,监视,但是又不想改修原有的代码,可以通过AOP(AspectOfProgram)来实现。在pom.xml中引入spring-boot-starter......
  • springboot+vue+mybatis家电系统+PPT+论文+讲解+售后
    随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了家电销售系统的开发全过程。通过分析企业对于家电销售系统的需求,创建了一个计算机管理家电销售系统的方案。文章介绍了家电销售系统的系统分析部分,包括可行性分析等,系统设计部分主......
  • 【计算机毕业设计】基于springboot的大创管理系统【源码+lw+部署文档】
    包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所......
  • 使用 Spring Boot 的yml配置文件读取方式
    在Java项目中读取YML(YAML)配置文件有多种方式,尤其在使用SpringFramework(包括SpringBoot)时,更是提供了丰富的支持。以下是几种常见的方式来读取YML配置文件:1.使用SpringBoot的自动配置SpringBoot提供了对YML文件的自动化支持,这也是最常用的方式。1.1使用@Value......
  • 面试题——Spring
    ★1.Spring和SpringBuffer和SpringBuilder的区别?    ①值可变性      Spring中的值是final修饰的,不可变,当试图修改这个不可变值时等于创建一个新的对象。   SpringBuffer和SpringBuilder则是可变的    ②线程安全性    Spring: ......
  • 基于Java+SpringBoot+Vue前后端分离宠物管理系统(源码+万字LW+PPT+部署教程)
    博主介绍:✌全网粉丝10W+csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌一、作品包含源码+数据库+设计文档LW+PPT+全套环境和工具资源+部署教程二、项目......
  • JVM类加载机制
    类加载机制概述类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Link)。初始化的单例......
  • 深入探索Spring Boot的条件装配与条件注解
    SpringBoot的条件装配(Conditional装配)是一个强大的功能,它允许你根据特定的条件来决定哪些配置类、beans或组件应该被加载到Spring应用上下文中。这有助于创建更灵活、更模块化的SpringBoot应用程序。在SpringBoot中,条件装配主要通过@Conditional注解及其派生注解(如@Co......