spring的知识那么多,看源码也不知从何看起,那应该怎么学呢?我觉得,完整的spring我们写不出来,但是一个简单的,我们还是可以实现的。自己动手去实现一个简单的spring,是学习它的最好的方式。

bfmvc

模仿springmvc的轻量级web框架,适合学习和搭建小型web项目使用,持续更新

项目地址:https://github.com/CFshuming/bfmvc

感兴趣的记得star哟~

目录介绍

  • bfmvc: 框架源码。
  • bfmvc-demo: 基于框架写的一个小demo。
  • assest:demo截图。

功能

  • 支持最基本的mvc模式,提供@Controller,@Service,@Autowired,@RequestMapping四种注解。
  • 模仿springmvc,使用DispatherServlet控制路由。
  • 支持简单的IOC。
  • 支持jsp视图。
  • 支持返回json数据。
  • 支持自定义资源路径,jsp路径。
  • 根据配置,自动扫描包。

项目采用jdk1.8编写,源码中用了1.8新特性。所以1.8以下版本的jdk不支持。

todo

  • 代码提供更多注释。
  • 支持多视图。
  • aop支持。
  • 更多。。。

如何使用

参考bfmvc-demo。在pom文件中引入bfmvc(没有放到maven中央仓库,需要引入本地的 bfmvc jar,可通过编译框架源码获得)

执行 mvn clean, mvn install.

将target目录下的xxx.war放到tomcat webapp 目录下, 启动tomcat访问即可。

效果(bfmvc-demo)

登录页面(为了演示可以加载本地资源)

persons页面

其他

本项目参考了汇智网上的一个项目,从中学到很多。项目会不定期更新,欢迎关注。

本项目更大的用处是学习spring的思想,而不是要开发一个全新的web框架。

如果有需要,我可以写教程和思路,需要的请留言并到github star支持一下,我看情况决定是否要写。

自己动手模仿 springmvc 写一个 mvc框架相关推荐

  1. 怎样自己写一个MVC框架

    最近想学习php的mvc结构,在网上找了一些资料,可是大部分都是相同的,或者写的不是很满意.接着看了一个cakephp的框架,感觉太多的函数了,让人觉得就是一个记函数的过程,所以觉得不是很好. 我对m ...

  2. 自己动手写PHP MVC框架

    自己动手写PHP MVC框架 来自:yuansir-web.com / yuansir@live.cn 代码下载: https://github.com/yuansir/tiny-php-framew ...

  3. 动手造轮子:写一个日志框架

    动手造轮子:写一个日志框架 Intro 日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时 ...

  4. 从零开始写一个RPC框架的详细步骤

    http://blog.csdn.net/liu88010988/article/details/51547592 定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的, ...

  5. B编码与BT种子文件分析,以及模仿json-cpp写一个B编码解析器

    B编码与BT种子文件分析,以及模仿json-cpp写一个B编码解析器 1.什么是B编码 2.B编码格式 3.种子文件结构 3.1.主文件结构 3.2.info结构 4.简单的例子了解一下种子文件和B编 ...

  6. VS 如何创建一个MVC框架

    VS 如何创建一个MVC框架 开发工具与关键技术:VS 如何创建一个MVC框架 作者:胡宁淇 撰写时间:2019年1月17日 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务 ...

  7. Day 2---vue2 从0开始 写一个前端框架

    项目背景:vue2 业务需求:用Vue+Element 写一个前端框架 今日主线任务:完成静态登陆页面 项目地址: https://gitee.com/whwbs/my_project.git 准备工 ...

  8. 【RPC框架、RPC框架必会的基本知识、手写一个RPC框架案例、优秀的RPC框架Dubbo、Dubbo和SpringCloud框架比较】

    一.RPC框架必会的基本知识 1.1 什么是RPC? RPC(Remote Procedure Call --远程过程调用),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术. ...

  9. 自己手写一个Mybatis框架(简化)

    继上一篇手写SpringMVC之后,我最近趁热打铁,研究了一下Mybatis.MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码.本 ...

最新文章

  1. .NET开发必备网址
  2. nginx配置图片防盗链
  3. centos6.5 安装docker方法
  4. 26.多线程join detach
  5. MVC自动配置原理---SpringBoot
  6. 如何提升python编程能力_Python编程小白如何提升自己的编程能力
  7. android 音频播放总结 soundlPool,MediaPlay
  8. mysql 常用命令的使用_MySQL基本命令
  9. 加密后变成乱码解密_个人磁盘加密软件,使用VeraCrypt进行整盘加密介绍
  10. 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  11. 18. PHP 表单验证
  12. 暗影精灵4如何调节风扇转速_关于解决暗影精灵4散热问题。
  13. 电磁铁基础知识介绍及各系列性能比较
  14. 计算机图形学 读书笔记(七)B样条曲线 B-Spline
  15. Anaconda3\Scripts\activate.bat 不是内部或外部命令,也不是可运行的程序的问题处理方法
  16. Java性能优化从20s优化到500ms,我用了这三招,内容知识满满
  17. 《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一2.8 现状...
  18. 负数在计算机中的存储和表示
  19. Boost.Locale 之字符转换 gbk utf8 big5 string wstring等
  20. 常用单电源运放的偏置方法

热门文章

  1. Python自动化办公:pdf文档操作
  2. 悦读 | 公布你的原则,读瑞.达利欧的《原则》
  3. 圣手键盘如何识别微软输入法的大小写状态?声音提示法
  4. 首届金融行业SD-WAN的应用与实践研讨会上海站
  5. python 有损和无损 方式替换表情符号
  6. 陈皓谈对待技术的态度
  7. 刚打印完色3D模型不能完成取下来
  8. Android 连接wifi 检测是否需要portal 认证
  9. educoder C++实战训练
  10. 【时空序列】AAAI2021| 利用时空融合图神经网络进行交通流量预测