• 2024-11-03spring、mybatis、并发、虚拟机总结
    1、spring扩展接口在Spring框架中,扩展接口是一种强大的机制,允许开发者在Spring容器的生命周期中插入自定义逻辑。以下是一些常用的Spring扩展接口及其使用方式:BeanDefinitionRegistryPostProcessor:这个接口在读取项目中的beanDefinition之后执行,提供一个补充的扩展点。你可
  • 2024-10-28SpringBean的实例化过程及后处理器
    SpringBean的实例化过程我们都知道,当我们把bean交给Spring容器进行管理,也就是在xml文件中配置bean,当我们需要用到某个bean时,Spring就帮我们创建好对象使用。那我们来了解一下这中间的过程是怎样的。1.在xml中配置bean,工厂将一整个语句配置信息转换成beanDefinition对象。
  • 2024-09-23简单得实现IOC容器控制反转和依赖注入,并分析原理
    目录IOC容器依赖反转/注入AnnotationConfigApplicationContextspring容器启动类(相当于spring容器)完整简单理解代码参考文章链接:https://blog.csdn.net/heyl163_/article/details/132515809IOC容器Component注解:标记是否要创建bean,传入bean的名称@Target(Elem
  • 2024-09-18@import (beandefinition register)
    https://www.jb51.net/program/314486bls.htm         
  • 2024-07-2205document转为BeanDefinition并注册过程
    接着之前的文章4继续分析,文章4里的步骤七里xmlReader(XmlBeanDefinitionReader)的registerBeanDefinitions(doc,resource)方法里最终走到调用他的好友documentReader.registerBeanDefinitions(doc,createReaderContext(resource))方法Ⅰ、代码流程一、程序入口位于documentRea
  • 2024-07-1703各种概念
    1、BeanDefinition概念(辅助Class概念从而实现spring世界的基石)spring的世界里,把bean的信息(bean与别的bean的关系,bean自身各属性的值)封装到BeanDefinition,这样实例化bean时能更加丰富,有了BeanDefinition就不再是用newInstance方法实例化出一个个光秃秃的对象,而是把对象之间互相
  • 2024-07-14Spring的启动流程refresh方法、配置类解析流程@Component、@Configuration、@Import、@Bean
    Spring的启动流程概述:核心方法:refresh方法,作用就是实例化spring容器中的所有单例。 3步:生成BeanFactory容器(有beanDefinition类信息和bean对象实例)生成BeanDefinition类信息生成bean对象实例 需要知道的知识:1、先有beanDefinition类信息,再有bean对象。2、在beanDefi
  • 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接口,并在其基础上扩展了