手写实现简易spring框架第一天

  哈喽大家好,最近闲来无事,又不想去研究业务逻辑,所以就开始尝试写一下简易spring框架的实现。由于刚工作一年且因为是在学习,所以如果有写的不对的地方,还希望各位大神给一点指导。本文的主要意图呢,就是为了我学习不会间断

先放出spring的官网供大家查阅

Spring | Home

一、spring简介

这里我相信大家应该对spring都很了解了,就简单的一笔带过,不写那么多啰嗦的话题了。

核心就是一个控制反转(ioc)和面向切面编程(AOP)

主要功能呢就是:

1:方便解耦,简化开发;

2:方便的对程序进行拦截、运行、监控等功能;

3:可以对事务声明;

4:属于一个万能的框架,跟很多框架都是百搭;

由于本文只描述如何实现简易spring框架,所以不再阐述spring框架的搭建以及配置。

二、如何实现

一、准备工作

我们先创建一个基本上什么都没有的maven工程,大致如下

 如果不会创建的小伙伴可以移步这位大佬的文档

(2条消息) Idea中创建maven项目(超详细)_Yan Yang的博客-CSDN博客_idea创建maven项目

建好我们的文件夹以及我们的容器类,还有测试类,这里先不用去管我的别的文件夹,只要去看我圈出来的类就可以了。这里是建了一个ZfApplicationContext去作为我们框架的容器类,以及Test测试类。

 在spring框架中我们知道在创建容器类的时候要传递一个配置类作为参数,就是我们的AppConfig,

已经在调用getBean方法时传递的beanName作为参数,这里创建了一个空的业务层去模拟我们平时的业务层,这里的AppConfig类目前也是空的状态,里面并没有加内容。到这里我们的准备工作大致是完成了。

容器类中的代码,在提供一个构造方法

public class ZfApplicationContext {

    //配置类
    private Class configClass;


    //创建容器时传入配置类
    public ZfApplicationContext(Class configClass) {
        this.configClass = configClass;
    }
}

二、spring的启动和扫描逻辑的实现

我们知道在spring中实例化容器类的时候,传入的配置类可以通过@ComponentScan注解将我们要扫描的目录传递进去,这个是怎么实现的呢?

我们也来定义一个简单的@ComponentScan注解,这里我就不给它设置默认值了,我们后续可以手动去给它添加路径

@Retenti
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值