这个项目是3年前的,记忆尤深,刚刚接触springboot一个月(事实上是刚进一家公司,闲着没事干),发现非常多的功能都是那么容易的实现,于是乎想能否自己实现一个mvc,保持springmvc的使用风格,于是花了接近1个多月的时间写了这个项目,期间收获非常多,建议3年以下的的java同学可以参考。此框架参考了一个大型的电商系统框架源码(很老的项目基于Servlet)
项目地址 https://github.com/liuchengts/bassis
实现思路:
一、构建工具模块,基础的工具包,而不是耦合在代码中。
二、构建bean模块,类似于springbean工厂,但是我这里的bean模块还承担了自动扫描装配等工作。
三、构建hibernate模块,支持数据库操作,支持多数据源
四、构建web模块,框架主体
1、构建一个Servlet容器,类似于springDispatcherServlet,获得上下文,并构建一个配置文件读取器
2、随后开始启动框架初始化过程,主要有bean扫描器,bean路由匹配算法及存储,ioc资源注入,资源释放等
3、在代理上使用了cglib和jdk两种方式,也包含ams字节码的原生方式。
4、实现了aop,增加了拦截器栈(实现上我记得有个小bug没有处理好)
5、多数据源同步事务可以从aop的基础上开发,目前还没有加上。
五、构建test模块,独立整个框架源码,做的测试框架的项目,也介绍了一些框架特性用法,建议从这个test模块入手看,会更加直观了解整个框架的运作。
前段时间打算把这个项目有传统的web.xml配置的结构改为内嵌tomcat 类似springboot的结构,奈何时间不够,没空整了。
![欢迎关注我的个人公众号](https://img-blog.csdnimg.cn/20200116213531279.jpg)