简化版的SpringMVC框架的实现思路
在SpringMVC基本统一Java web开发技术栈的环境下, 这是一个有点过时的话题了. SpringMVC的特点主要在于注解型的RequestMapping和参数机制非常灵活, 另外得益于Spring本身的bean控制, 可以很方便的在各个环境引入其他对象.
最近整理了一下几年前的工作, 把项目的底层代码剥出来. 这是一个类似于SpringMVC的底层框架, 数据端使用的是DBUtils, 适合小型的定制系统.
https://github.com/MiltonLai/mocha-web-framework .
其中核心部分是Dispatcher, 注册在web filter上, 通过filter init初始化以下四部分:
全局对象池, 请求映射表, 视图解析方式表, 还有拦截器表
在请求时, 亦根据方法的参数数量和类型自动填充输入.
与SpringMVC不同的地方,
1. 可以直接通过在controller的类或方法上的RequestMapping注解定义结果的视图类型, 不需要通过复杂的机制根据返回类型进行选择.
2. 在基础实现上就区分开输入的数据和输出的数据, 避免在后期通过拦截器的postHandle去清理敏感数据, 以防止被不恰当的视图渲染对象输出给用户