从零开始搭建轻量级JavaWeb框架

smartframework

黄勇<<架构探险:从零开始写JavaWeb框架>>,轻量级javaweb框架smartframework源码,源码地址:https://github.com/letterZhao/smartframework.git

简介

一、实现IOC功能(加载配置文件,读取路径下的类、实例化类、IOC容器管理bean)

ConfigConstant类 提供基础配置文件路径
ConfigHelper类 读取配置文件
ClassUtil类 加载配置文件下的类
@Controller @Service 定义Controller和Service类
ClassHelper类 封装了ClassUtil类,提供各种获取Class的方法
ReflectionUtil类 提供实例化Class的方法
BeanHelper类 IOC容器,提供获取实例方法

二、实现AOP功能

最简单的做法是通过beanHelp类获取所有Controller或Service注解的类,然后遍历获取这些类的成员变量,看是否是AutoWired注解的类,如果是通过ReflectionUtil类的setFiled方法来实现DI注入

三、实现请求和Controller层的映射关系

Request类: 封装请求路径和请求方法
Handler类: 封装Controller和Method
ControllerHelper类: 根据ClassHepler类获取所有Controller注解的方法,通过反射获取所有带Action注解的方法,并获取请求路径和请求方法,将Request和Controller关系映射到一个Map中,根据Request可以随时获取Map中的Value;

四、初始化框架

HelpLoader类 初始化ClassHelper、BeanHelper、IOCHelper、ControllerHelper

五、请求转发器DispatcherServlet

首先从request中获取请求方法和请求路径,封装成一个request对象,通过ControllerHelper.getHandler(requestMethod,requestPath);方法获取Handler类,然后通过BeanHelp.getBean()方法获取实例对象,随后通过HttpRequest获取请求参数封装为Param类,通过ReflectionUtil.invokeMethod(controllerBean,actionMethod);方法返回结果,然后判断返回结果的类型,返回视图或者数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值