# simpleframework **Repository Path**: yuejia-lai/simpleframework ## Basic Information - **Project Name**: simpleframework - **Description**: 自制简易spring框架 - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: http://www.blog.laiyuejia.cn - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2023-02-06 - **Last Updated**: 2024-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, Spring, SpringBoot, Spring-MVC ## README

SimpleFramework

造轮子项目:从头实现Spring框架
## 项目简介 > Spring框架家族在Java开发中居于霸主地位,不仅在于其简单易懂,功能强大,更在于其使用了大量的设计模式,规范的项目架构,再加上开源免费,让众多的开发者可以从中学习,提升自己,为Java开发带来了“春天” 在我看来,用少量的基础技术工具类实现一个Spring框架应该是每个Java开发者的梦想,所以才有了这个项目 **SimpleFramework是一个开源的项目,任何企业和个人可以免费学习使用** - 本项目实现了一个**简易版本的Spring框架**,实现了其三大核心功能:**IOC,AOP,MVC** - `core`包实现了框架的核心功能:`bean`的扫描加载,容器的维护,单例模式实现,以及自定义bean - `inject`包负责依赖注入:`Autowired`注解以及单例模式注入以及为接口注入实现类 - `aop`包遵循面向切面编程思想:`Aspect`和`Order`注解负责切面类标识排序,通过cglib动态代理以及AspectJWeaver织入横切逻辑,实现动态修改方法逻辑 - `mvc`包对应于请求分发相关功能:重构`DispatcherServlet`,实现`RequestProcessorChain`,`RequestProcessor`矩阵以及`ResultRender`矩阵,完成多种请求的处理与响应渲染 ## 项目架构图 ### IOC ![IOC](IOC.png) ### AOP ![AOP](AOP.png) ### MVC ![MVC](MVC.png) ## 项目用到的技术 - Java 1.8 - Maven - CGLIB - AspectJWeaver - Java Servlet API - Gson - Lombok ## 如何使用本项目 - **方法一:** 下载源码,导入Idea,可以在demo目录下进行相关的测试(与使用Spring Boot开发项目基本相同) - **方法二:** 将target目录下的jar包导入自己的项目即可,注意依赖冲突问题