# small-spring **Repository Path**: tangming96/small-spring ## Basic Information - **Project Name**: small-spring - **Description**: 手撸实现简单spring,了解原理 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # small-spring #### 介绍 手撸实现简单spring,了解原理 ## small-spring-step-01 ### 内容简述 - 主要理解什么是Spring Bean容器是什么 - 实现Spring Bean的过程分为:bean的定义、注册、获取 1. 定义:BeanDefinition,可能这是你在查阅 Spring 源码时经常看到的一个类,例如它会包括 singleton、prototype、BeanClassName 等。但目前我们初步实现会更加简单的处理,只定义一个 Object 类型用于存放对象。 2. 注册:这个过程就相当于我们把数据存放到 HashMap 中,只不过现在 HashMap 存放的是定义了的 Bean 的对象信息。 3. 获取:最后就是获取对象,Bean 的名字就是key,Spring 容器初始化好 Bean 以后,就可以直接获取了。 ### 关系图 ```puml @startuml skinparam defaultTextAlignment center skinparam noteBackgroundColor LightBlue skinparam noteBorderColor Black ' 定义类 BeanDefinition class BeanDefinition { - bean : Object } ' 定义类 BeanFactory class BeanFactory { - beanDefinitionMap : Map + getBean(String name) + registerBeanDefinition(String name, BeanDefinition beanDefinition) } ' 定义类 ApiTest class ApiTest { - test_BeanFactory() } ' 关系:BeanFactory 依赖于 BeanDefinition BeanFactory ..> BeanDefinition : 依赖 ' 关系:ApiTest 使用 BeanFactory ApiTest ..> BeanFactory : 使用 @enduml ```