手写Spring框架

在学习完Spring框架之后, 我们知道了 Spring容器, IOC, AOP, 事务管理, SpringMVC 这些Spring的核心内容, 也知道了它们底层实现的基本原理, 比如Spring容器就是个Map映射, IOC底层就是反射机制, AOP底层是动态代理, SpringMVC不就是对Servlet进行了下封装嘛! 哈哈, 当然这些只是些皮毛, Spring除此之外还有更加复杂的设计, 但我们完全可以抛弃那些复杂的设计, 通过这些底层原理自己来写个Spring框架. 写完之后, 相信我们会对Spring框架有个更加深刻的理解.

前置知识

在自己动手写Spring框架之前, 我们得先了解下Spring框架的核心知识点, 如下:

Spring基础

Spring AOP

Spring事务管理

Spring MVC

Java反射机制

动态代理

Java注解

代码下载

在开始动手写博客之前, 我已经完成了自己的Spring框架, 并给它取名为 handwritten-mvc-framwork, GitHub地址为:
https://github.com/tyshawnlee/handwritten-mvc.git

大家可以 clone 到自己的IDE中, 然后跟着下面的博客我们一起学习.

项目导入后结构如下:
手写Spring框架_第1张图片

其中, handwritten-mvc-framwork 为自己实现的Spring框架, handwritten-mvc-example 为该框架的实例.

开始

(1) 建立框架

我们首先创建一个Maven项目, 取名为 handwritten-mvc-framwork, 我们尽可能少的使用第三方依赖, 精简后的依赖如下:


    
    
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
    
    
    
        javax.servlet.jsp
        jsp-api
        2.2
        provided
    
    
    
        javax.servlet
        jstl
        1.2
        runtime
    
    
    
        mysql
        mysql-connector-java
        5.1.33
        runtime
    
    
    
        org.apache.commons
        commons-dbcp2
        2.0.1
    
    
    
        commons-dbutils
        commons-dbutils
        1.6
    
    
    
        org.slf4j
        slf4j-log4j12
        1.7.7
    
    
    
        cglib
        cglib
        2.2.2
    
    
    
        org.apache.commons
        commons-lang3
        3.3.2
    
    
    
        org.apache.commons
        commons-collections4
        4.0
    
    
    
        com.alibaba
        fastjson
        1.2.49
    

(2) 实现Spring容器和IOC

手写Spring框架之IOC

(3) 实现Spring MVC

手写Spring框架之MVC

(4) 实现Spring AOP和事务管理

手写Spring框架之AOP

你可能感兴趣的:(Spring笔记,手写Spring框架)