简单实现Spring容器
2025-4-20
| 2025-4-20
Words 229Read Time 1 min
type
status
date
slug
summary
tags
category
icon
password

需求

模拟一个简单的spring容器,通过读取beans.xml,获取第一个javabean对象,并给该对象赋值,放到容器中,输出该对象。

思路分析

LsbApplicationContext.java容器,有属性ConcurrentHashMap,singletonObjects
  1. 解析beans.xml(使用Dom4j)
  1. 得到第一个bean的信息id,class,属性和属性值
  1. 使用反射生成对象,并赋值
  1. 将创建好的bean对象放入到singletonObject集合中
  1. 提供getBean(id),可以返回对应的对象
主要目的,可以对spring的流程有一个简单的了解

主要流程

  1. 创建ApplicationContext
  1. 提供一个构造器,入参是beans.xml路径
  1. 解析xml,拿到类路径和属性值
  1. 通过反射创建对象并给属性赋值
  1. 将创建好的对象放入单例池
  1. getBean(),通过id从单例池中获取对象

Spring容器结构

notion image
image-20230118171726432

代码

https://github.com/MisteryLiuCode/Spring
线程安全第一次出现两次的字母
Loading...