# 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

### AOP

### MVC

## 项目用到的技术
- Java 1.8
- Maven
- CGLIB
- AspectJWeaver
- Java Servlet API
- Gson
- Lombok
## 如何使用本项目
- **方法一:**
下载源码,导入Idea,可以在demo目录下进行相关的测试(与使用Spring Boot开发项目基本相同)
- **方法二:**
将target目录下的jar包导入自己的项目即可,注意依赖冲突问题