【仿写spring之ioc篇】一、预期目标以及项目结构介绍

前言

最近系统的学习了一下spring的源码,准备简单仿写一下spring,目前是仿写ioc篇,在ioc篇中将完成整套的bean的生命周期,当然是简单的实现,不会像spring真正源码那样做非常系统性的校验以及接口设计。

预期目标

  1. 将所有带有@Component注解的类注册成bean
  2. 将@Bean的方法注册成bean
  3. 实现bean的生命周期,即创建,初始化以及销毁等操作

这里建议不了解bean的生命周期的小伙伴先来看一下博主的文章
【spring】spring bean的生命周期

项目结构

流程分析

  1. 启动项目,扫描目标路径下的所有带有@Component注解的java文件
  2. 扫描目标路径下的所有带有@Configuration注解中的@Bean注解标记的方法
  3. 遍历前两步得到的集合执行bean的生命周期
  4. 通过newInstance获取空实例
  5. 通过反射调用set方法
  6. 检查Aware接口并通过Aware调用
  7. 将bean交给BeanPostProcessor进行初始化
  8. 执行@PostConstruct
  9. 检查InitializingBean
  10. 从BeanPostProcessor获取bean并保存在BeanFactory中
  11. 关闭项目时销毁bean

开源地址

仿写spring-Gitee

后续更新

【仿写spring之ioc篇】二、bean生命周期中的创建以及属性赋值
【仿写spring之ioc篇】三、检查是否实现了Aware接口并且执行对应的方法
【仿写spring之ioc篇】四、实现bean的初始化阶段

相关推荐
苏三说技术4 分钟前
如何看待GPT-6在UP主众测中碾压夺冠?它是现在最强大模型吗?
后端
mldong23 分钟前
一份 JSON,一条能跑的审批流:把报销流程送上工作流引擎
后端·架构
wno70424 分钟前
Spring Boot WebFlux增删改查
java·spring boot·后端
Captaincc27 分钟前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
君顾138 分钟前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
aramae1 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
SL_staff2 小时前
别急着买商业规则引擎:90%风控场景根本不需要全量编码能力
java·程序员·groovy
ManageEngineITSM2 小时前
DevOps和ITIL是什么关系?是替代还是互补一文讲清
java·服务器·资产管理·变更管理
IT_陈寒3 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
分支预测失败3 小时前
RISC-V 时间子系统深度专题:mtime 访问路径、SBI 定时器与 Linux tickless 协同
后端