一起学源码——Spring篇(1)

本文介绍了Spring的核心特性IOC的简单实现,从注解方式入手,通过创建BeanDefinition,定义MyAutowired和MyComponent注解,以及进行调试步骤。文中提到,虽然实现简单,但已涵盖加载BeanDefinition和创建对象的关键过程,同时也提出了关于Spring为何使用三级缓存而非一级缓存以解决循环依赖的疑问,以及后续学习的方向。
摘要由CSDN通过智能技术生成

一.简介

Spring最核心的两个特性IOC和AOP,这两个特性具体是什么,想必大家应该也都很熟悉了,这里不过多的解释了。
由于最近一直在学习Spring的源码,写个记录贴,同时加深自己的理解和印象。
同时由于本人基本没有接触过Spring的xml配置方式,所以本系列全部从注解的方式出发学习Spring的源码是如何做到IOC和AOP的。
同时本系列会从一个最简单的IOC容器进行向上扩展,学习Spring的代码思路,如何写出高可扩展的代码。
本人水平有限,若有不足和错误之处,忘请谅解。

二.IOC的简单实现

		<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.12</version>
        </dependency>

两个依赖包,分别为测试的junit和一个工具包hutool

package com.lowSpring;

public class BeanDefinition {
   
    private Class beanClass;

    public void setBeanClass(Class beanClass) {
   
        this.beanClass = beanClass;
    }
    public Class getBeanClass() {
   
        return beanClass;
    }
}

BeanDefinition 想必大家是很熟悉的了,在Spring中是非常重要的一个类,这里只是简单实现,只有一个参数 benaCLass。

package com.myframework;

import java.lang.annotation.*;

@Target({
   ElementType.FIELD,ElementType.METHOD,ElementType.CONSTRUCTOR})
@Retention(RetentionPolicy.RUNTIME)
@Documented
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值