克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

SimpleFramework

造轮子项目:从头实现Spring框架

项目简介

Spring框架家族在Java开发中居于霸主地位,不仅在于其简单易懂,功能强大,更在于其使用了大量的设计模式,规范的项目架构,再加上开源免费,让众多的开发者可以从中学习,提升自己,为Java开发带来了“春天”

在我看来,用少量的基础技术工具类实现一个Spring框架应该是每个Java开发者的梦想,所以才有了这个项目

SimpleFramework是一个开源的项目,任何企业和个人可以免费学习使用

  • 本项目实现了一个简易版本的Spring框架,实现了其三大核心功能:IOC,AOP,MVC
  • core包实现了框架的核心功能:bean的扫描加载,容器的维护,单例模式实现,以及自定义bean
  • inject包负责依赖注入:Autowired注解以及单例模式注入以及为接口注入实现类
  • aop包遵循面向切面编程思想:AspectOrder注解负责切面类标识排序,通过cglib动态代理以及AspectJWeaver织入横切逻辑,实现动态修改方法逻辑
  • mvc包对应于请求分发相关功能:重构DispatcherServlet,实现RequestProcessorChainRequestProcessor矩阵以及ResultRender矩阵,完成多种请求的处理与响应渲染

项目架构图

IOC

IOC

AOP

AOP

MVC

MVC

项目用到的技术

  • Java 1.8
  • Maven
  • CGLIB
  • AspectJWeaver
  • Java Servlet API
  • Gson
  • Lombok

如何使用本项目

  • 方法一:

下载源码,导入Idea,可以在demo目录下进行相关的测试(与使用Spring Boot开发项目基本相同)

  • 方法二:

将target目录下的jar包导入自己的项目即可,注意依赖冲突问题

MIT License Copyright (c) 2023 yuejia-lai Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

自制简易spring框架 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化