首页 > 编程语言 >学习spring源码(一)

学习spring源码(一)

时间:2024-01-15 15:24:25浏览次数:39  
标签:java cn spring springframework 学习 源码 test

学习文档来自小傅哥,详情可以去原文章了解,这边只是简单记录一下学习体会
《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

工程结构:

类似是这样,我这边稍微有点区别,仅做参考

small-spring-step-02
└── src
    ├── main
    │   └── java
    │       └── cn.bugstack.springframework.beans
    │           ├── factory
    │           │   ├── config
    │           │   │   ├── BeanDefinition.java
    │           │   │   └── SingletonBeanRegistry.java
    │           │   ├── support
    │           │   │   ├── AbstractAutowireCapableBeanFactory.java
    │           │   │   ├── AbstractBeanFactory.java
    │           │   │   ├── BeanDefinitionRegistry.java
    │           │   │   ├── DefaultListableBeanFactory.java
    │           │   │   └── DefaultSingletonBeanRegistry.java
    │           │   └── BeanFactory.java
    │           └── BeansException.java
    └── test
        └── java
            └── cn.bugstack.springframework.test
                ├── bean
                │   └── UserService.java
                └── ApiTest.java

我这边先把完整代码的结构放出来,可以参考,在idea按CTRL + H 就可以看到类的层次结构了(很重要,不然等会很多继承和实现会把你绕晕的)

image

image

代码实现

DefaultSingletonBeanRegistry

标签:java,cn,spring,springframework,学习,源码,test
From: https://www.cnblogs.com/Linzj5950/p/17965428

相关文章

  • c#学习笔记----------------------------协变和逆变
    协变和逆变协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。协变保留分配兼容性,逆变则与之相反。协变以下代码演示支持协变与不支持协变的泛型和数组的区别//泛型委托publicdelegateTMyFuncA<T>();//不支持逆变与协变......
  • 【scikit-learn基础】--『监督学习』之 层次聚类
    层次聚类算法是机器学习中常用的一种无监督学习算法,它用于将数据分为多个类别或层次。该方法在计算机科学、生物学、社会学等多个领域都有广泛应用。层次聚类算法的历史可以追溯到上世纪60年代,当时它主要被用于社会科学中。随着计算机技术的发展,这种方法在90年代得到了更为广泛的......
  • SpringBoot中整合ElasticSearch快速入门以及踩坑记录
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662参考上面搭建项目。ElaticSearchElasticsearch是java开发的,基于Lucene的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulW......
  • PDF.js实现按需分片加载pdf文件-包含前后端开发源码和详细开发教程
    PDF.js实现按需分片加载pdf文件-包含前后端开发源码和详细开发教程:https://blog.csdn.net/qq_29864051/article/details/130742657?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170529842016800186594900%2522%252C%2522scm%2522%253A%252220140713.130102334..%252......
  • python学习
    dic={'名字':'小明','身高':168,'体重':55}print(dic['名字']+'的身高是'+str(dic['身高'])+'cm,'+'体重是'+str(dic['体重'])+'kg.')打印字典中的整形时记得转成字符串#......
  • SpringBoot 项目打成jar包并部署
    #打包在SpringBoot的pom文件中加入下列代码```XML<build><!--<finalName>census</finalName>--><plugins><plugin><groupId>org.springframework.boot</groupId><ar......
  • Spring解决泛型擦除的思路不错,现在它是我的了。
    你好呀,我是歪歪。Spring的事件监听机制,不知道你有没有用过,实际开发过程中用来进行代码解耦简直不要太爽。但是我最近碰到了一个涉及到泛型的场景,常规套路下,在这个场景中使用该机制看起来会很傻,但是最终了解到Spring有一个优雅的解决方案,然后去了解了一下,感觉有点意思。和你......
  • SpringAOP基于xml的五种通知
    <?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springfra......
  • SpringBoot 2.x 正式停更了。Java 8 就看 Solon 的了!
    最近有好多个新闻说:SpringBoot2.x正式停更了,Java8怎么办?当然用Solon喽!Solon,同时支持jdk8,jdk11,jdk17,jdk21。也支持graalvmnativeimage。既支持java8,也支持java21的:@SolonMainpublicclassApp{publicstaticvoidmain(String[]args){Sol......
  • Java学习路线
    本套视频教程所有配套资料领取方式如下:方式1:访问黑马官网可下载:www.itheima.com?bz方式2:关注黑马程序员公众号,回复关键词:领取资源02学习+Q群625260577,告别孤单,共同进步!2024黑马程序员Java学习路线图如何下载资料Java最高效学习路线图(依次向下顺序学习即可)Java基础:Java入门基础视......