码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【仿写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的初始化阶段

  • 相关阅读:
    RockerMq--入门
    力扣240.搜索二维矩阵II
    法线方程实现最小二乘拟合(Matlab)
    【JS 逆向百例】猿人学系列 web 比赛第五题:js 混淆 - 乱码增强,详细剖析
    深度学习Hotel-ID打击人口贩卖(1)项目介绍和数据预处理
    go mod tidy总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具
    Paper - Neural Discrete Representation Learning (VQ-VAE) 论文简读
    质量问题不是不爆,时候未到
    平民酒的质与量
    webpack 3 + Vue2 使用dotenv配置多环境
  • 原文地址:https://blog.csdn.net/qq_51383106/article/details/132624705
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号