自己实现一个简易的SpringMVC

本文介绍了作者如何基于已有的Spring实现,快速构建一个简单的SpringMVC框架。通过定义DispatcherServlet作为请求入口,并读取配置文件扫描Controller,作者构建了处理页面转发和返回Json数据的Handler,以及相应的适配器。虽然没有实现SpringMVC的完整IoC容器,但依然完成了基本的请求处理流程。
摘要由CSDN通过智能技术生成

上回实现了一个简易的Spring,那就顺便实现一些SpringMVC吧。由于有了上回的基础,这回实现比较快,晚饭前架构了一下,一晚上就写得差不多了。自己实现的架构比较简单,下面简单介绍一下。

源码下载:http://download.csdn.net/detail/jobsandczj/9844308

实现思路及工作流程

定义一个DispatcherServlet,用来做请求入口。初始化时,去读取配置文件,获得Controller的包,然后“注入”Controller。SpringMVC它本身是有自己的IoC容器的,用来注入Controller以及它的组件,但IoC我在Spring里玩过了,这回就没有写依赖注入。但完事后发现其实也没省多少功夫,终归还是要扫包,解析的。

得到Controller后就构建Handler。让每个Handler与一个请求路径对应,我只定义了两种类型的Handler,一个是处理页面转发的,一个是返回Json数据的。每种Handler都有它的适配器,这就让Controller的方法设置参数少了很多约束,只要是request,response,session这仨家伙就行。

最后初始化适配器列表,以便在接收到请求后适配。


下面是Handler抽象类:

package MySpringMVC.springmvc;

import java.lang.reflect.Method;

/**
 * Created by 10033 on 2017/5/16.
 */
public abstract class Handler {
    protected Method method;
    protected Object controller;
    protected Class[] params;
    protected RequestMethod requestMethod;

    public Handler(Method method, Object controller, Class[] params, RequestMethod requestMethod) {
        this.method = method;
        this.controller = controller;
        this.params = params;
        this.requestMethod = requestMethod;
    }

    public Method getMethod() {
        return method;
    }

    public void setMethod(Method method) {
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值