SimpleFramework
造轮子项目:从头实现Spring框架
项目简介
项目地址
Gitee:https://gitee.com/yuejia-lai/simpleframework
GitHub:https://github.com/Yuejia-Lai/simpleframework
Spring框架家族在Java开发中居于霸主地位,不仅在于其简单易懂,功能强大,更在于其使用了大量的设计模式,规范的项目架构,再加上开源免费,让众多的开发者可以从中学习,提升自己,为Java开发带来了“春天”
在我看来,用少量的基础技术工具类实现一个Spring框架应该是每个Java开发者的梦想,所以才有了这个项目
SimpleFramework是一个开源的项目,任何企业和个人可以免费学习使用
- 本项目实现了一个简易版本的Spring框架,实现了其三大核心功能:IOC,AOP,MVC
core
包实现了框架的核心功能:bean
的扫描加载,容器的维护,单例模式实现,以及自定义beaninject
包负责依赖注入: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开发项目基本相同)
- 方法二:
将项目使用maven编译打包后把target
目录下生成的jar包导入自己的项目即可,注意依赖冲突问题