• 2024-06-17Spring容器系列-启动原理(下)
    Spring容器系列-启动原理(下)  从上一篇文章《Spring容器系列-启动原理(上)》中,介绍了Spring容器初始化的核心方法refresh()的整体情况。这篇文章来详细展开介绍。其中比较重要的方法会标记上***  一、refresh中的12个方法  1. prepareRefresh  主要作用:记录下容器
  • 2024-06-17AOP切面的实现原理【底层源码】
    AOP是基于IOC的Bean加载来实现的,将切面类的所有切面方法根据使用的注解生成对应的Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备这里我们可以很明确的知道,AOP也是在Bean容器中被Spring管理的,根据初始化过程打断点定位
  • 2024-06-15Spring配置文件的加载、解析
    Spring的核心流程是读取配置文件,解析并封装成BeanDefinition,并将所有的BeanDefinition收集到一个叫DefaultListableBeanFactory的容器中。一、setConfigLocation设置配置路径方便后续对其进行解析二、refresh方法,解析并封装BeanDefinition该方法中有几个重要的方法1.obtainF
  • 2024-06-06BeanDefinition的资源定位过程
    正文当我们传入一个Spring配置文件去实例化FileSystemXmlApplicationContext时,可以看一下它的构造方法都做了什么。/***下面这4个构造方法都调用了第5个构造方法*@paramconfigLocation*@throwsBeansException*///configLocation包含了BeanDefiniti
  • 2024-05-26【Spring】Scope注解的使用以及原理
    1 前言Spring帮助我们管理着Bean,那么带来的一个思考就是Bean该维护一个实例呢?还是每次都获取新的呢?单例的依赖多例的作用范围的变化怎么处理呢?也就是Bean的一个作用范围的管理是怎么控制的呢?这就是我们本节要看的Scope。2 Scope介绍2.1 @Scope注解在spring中,
  • 2024-04-09手写Spring底层机制
    手写Spring底层机制IOC容器//定义BeanDefinitionMap存放beanDefinitionprivateConcurrentHashMap<String,BeanDefinition>beanDefinitionMap=newConcurrentHashMap<>();//定义singletonObjects存放单例privateConcurrentHashMap<S
  • 2024-03-26Spring的IOC
    什么是Spring的IOC?        IOC控制反转,把对象的创建,初始化,销毁等工作交给Spirng的IOC容器去管理。IOC通过依赖注入,将容器中的对象注入到组件中,使用IOC使得对象之间的耦合度降低,资源变得容易管理,从而使得代码更加优雅。IOC的启动流程当Spring启动时,IOC容器会加载Spr
  • 2024-03-22Spring源码:手写Bean配置
    文章目录一、背景二、解决1、基于xml配置2、基于注解1)定义相关注解2)扫描包下的所有被@Componment修饰的Java类,生成BeanDefinition,注册到BeanFactory三、优化四、总结1、注解2、xml配置一、背景下面的代码,无论是IOC,DI,都需要创建BeanDefinition,设置构造器、初始方
  • 2024-03-15学习java第十三天
    Spring是一个轻量级的IoC和AOP容器框架,为Java应用程序提供基础性服务,简化了企业应用程序的开发,使得开发者只需要关心业务需求。几个重要模块:SpringCore:核心类库,所有功能都依赖于该类库,提供IOC和DI服务SpringAOP:AOP服务SpringORM:对现有的ORM框架的支持SpringWeb:为
  • 2024-03-14Spring揭秘:BeanDefinition接口应用场景及实现原理!
    BeanDefinition接口灵活性高,能够描述Bean的全方位信息,使得Spring容器可以智能地进行依赖注入和生命周期管理。同时,它支持多种配置方式,简化了Bean的声明和配置过程,提高了开发效率和可维护性。技术应用场景BeanDefinition接口定义了一个Bean的元数据,它包含了用于创建Bean对
  • 2024-03-11【Spring】BeanDefinition 深入了解
    1 前言今天想细细研究下BeanDefinition,至于为什么,主要是看了很多遍,没太关注mergedBeanDefinition所以比较好奇,它是干啥的呢?所以得先搞清BeanDefinition,开整。2 源码分析我们得先知道BeanDefinition在Spring这个大框架下是个什么位置。我的理解它就类似于Java中的
  • 2024-02-26mybatis-spring原理胡乱记一下
    1. 项目启动时会通过配置构建configuration,解析*mapper.xml文件,生成mappedstatement[mapperinterface+methodName]; 2. 通过MapperRegistry注mapper,通过MappereRroxyFactory生成MapperProxy[jdk动态代理],添加到mapperregistry中;3.当调用mapper接口时,通过调用生成
  • 2024-02-25IOC简单理解
    IOCrefreshBeanFactory()0、实例化IOC容器(就是一个Map<String,BeanDefinition>)1、资源加载器加载解析配置文件资源加载器接口ResourceLoader资源的抽象和访问接口ResourceFileSystemResource,文件系统资源的实现类ClassPathResource,classpath下资源的实现类UrlReso
  • 2024-01-31访问者模式
    定义:封装作用于某数据结构(如List/Set/Map等)中的各元素操作补充定义:可以在不改变各元素类的前提下,定义作用于这些元素的操作类型:行为型适用场景:一个数据结构(如List/Set/Map等)包含很多类型对象数据结构与数据操作分离优点:增加新的操作很容易,即增加一个新的访问者缺点:增
  • 2024-01-24Spring学习
    简单Spring代码1、BeanFactory和FactoryBean和BeanDefinitionBeanDefinition是Bean的定义。BeanFactory是Bean容器顶层接口。FactoryBean是用来创建Bean的,实现此接口的getBean方法可以通过此FactoryBean的名字获得Bean,如果想获得他本身则要转移&。2、容器 简单容器接
  • 2024-01-24死磕Spring之IoC篇 - BeanDefinition 的解析过程(面向注解)
    BeanDefinition的解析过程(面向注解)前面的几篇文章对Spring解析XML文件生成BeanDefinition并注册的过程进行了较为详细的分析,这种定义Bean的方式是面向资源(XML)的方式。面向注解定义Bean的方式Spring的处理过程又是如何进行的?本文将会分析Spring是如何将 @Component
  • 2023-12-27spring原理(一)
    定义bean类的属性值类publicclassPropertyValue{privatefinalStringname;privatefinalObjectvalue;publicPropertyValue(Stringname,Objectvalue){this.name=name;this.value=value;}publicStringgetName()
  • 2023-12-23Spring的BeanDefinitionRegistryPostProcessor接口详解
    BeanDefinitionRegistryPostProcessor介绍BeanDefinitionRegistryPostProcessor它是Spring框架的一个扩展点,用于对Bean定义的注册过程进行干预和定制,例如添加,修改或删除Bean定义等。BeanDefinitionRegistryPostProcessor它继承BeanFactoryPostProcessor接口,并在其基础上扩展了
  • 2023-12-19IoC源码
    主心骨:解析配置定位与注册对象注入对象一、Bean与BeanDefinition1、全局掌握核心接口和类解决了关键问题:将对象之间的关系转而用配置来管理依赖注入:依赖关系在Spring的IoC容器中管理通过把对象包装在Bean中以达到管理对象和进行额外操作的目的Bean是Spring的一等公
  • 2023-12-17Spring手动构建BeanDefinition的几种方法
    GenericBeanDefinitionRootBeanDefinitionChildBeanDefinitionBeanDefinitionBuilderGenericBeanDefinition@DatapublicclassStudent{Stringname;intage;}publicvoidtest(){AnnotationConfigApplicationContextcontext=newAnnotationConf
  • 2023-12-17Spring如何j将xml配置映射为BeanDefinition
    Spring的常用配置文件是applicationContext.xml文件,最简单的,一般我们都会添加这样的配置:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
  • 2023-12-17Spring的BeanDefinition是什么
    BeanDefinition是什么?在Spring框架中,BeanDefinition是描述和定义Spring容器中的Bean的元数据对象。它包含了定义Bean的相关信息,例如Bean的类名、作用域、生命周期等。BeanDefinition对象通常由Spring容器在启动过程中根据配置信息或注解生成。是SpingIoc容器管理的核心数据结构
  • 2023-12-16Feign源码解析:初始化过程(一)
    前言打算系统分析下Feign的代码,上一篇讲了下Feign的历史,本篇的话,先讲下Feign相关的beanDefinition,beanDefinition就是bean的设计图,bean都是按照beanDefinition来制造的。Feign相关的bean不少,有一些是因为我们的Feign相关注解而引入的,有一部分是因为spring的自动装配来自动引入的
  • 2023-11-21mini-spring 学习笔记(一)
    最近在学习mini-spring项目,记录笔记以总结心得目录最简单的bean容器BeanDefinition和BeanDefinitionRegistryBean实例化策略InstantiationStrategy为bean填充属性为bean注入bean资源和资源加载器在xml文件中定义beanBeanFactoryPostProcessor和BeanPostProcess
  • 2023-11-14万字解析XML配置映射为BeanDefinition的源码
    本文分享自华为云社区《Spring高手之路16——解析XML配置映射为BeanDefinition的源码》,作者:砖业洋__。1.BeanDefinition阶段的分析Spring框架中控制反转(IOC)容器的BeanDefinition阶段的具体步骤,主要涉及到Bean的定义、加载、解析,并在后面进行编程式注入和后置处理。这个阶段是Sp