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);方法返回结果,然后判断返回结果的类型,返回视图或者数据

从零开始搭建轻量级JavaWeb框架相关推荐

  1. 搭建java web框架_程序员搭建轻量级Javaweb框架,教程详细

    搭建Java Web项目 1.新建maven项目,create from archetype,选择maven-archetype-webapp 2.填写GroupId,ArtifactId和Versi ...

  2. Silverlight游戏设计(Game Design):(四)从零开始搭建游戏主体框架

    思路已俨然清晰,接下来要做的是从零开始搭建游戏的主体框架.Silverlight作为RIA界的新宠儿,不仅在游戏开发方面性能优越,在企业开发领域的优异表现同样日益显著.像我们这些长期从事.NET开发的 ...

  3. python vector 初始化_从零开始搭建机器学习算法框架(python)--计算框架

    介绍 今天开始一个新的系列,这个系列的目标是用python在不使用任何第三方库的情况下去实现各类机器学习或者深度学习的算法.之所以会有这种想法是因为每当我想提高编程技巧的时候,我总希望能够做一些简单又 ...

  4. 从零开始搭建轻量级个人XSS平台(BlueLotus_XSSReceiver-master蓝莲花)

    一. 前言 决定搭建XSS平台是因为自己想深入学习一下XSS相关的知识,多多进行实践,上网搜索了一下XSS平台有很多,但是总觉得不是很安全,这个毕竟敏感信息要传输到陌生人的服务器上,而且服务器端测试代 ...

  5. ssm radis mysql_从零开始搭建框架SSM+Redis+Mysql(一)之摘要

    从零开始搭建框架SSM+Redis+Mysql(一)之摘要 本文章为本人实际的操作后的回忆笔记,如果有步骤错漏,希望来信307793969@qq.com或者评论指出. 本文章只体现过程,仅体现操作流程 ...

  6. 从零开始搭建Android框架系列

    原文链接:http://www.jianshu.com/nb/3767449 开篇介绍和工程目录结构[从零开始搭建android框架系列(1)] 不容错过,最全的安卓架构合集[从零开始搭建androi ...

  7. vue + element ui 的后台管理系统框架_从零开始搭建 VUE + Element UI后台管理系统框架...

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条号.百家号等 ...

  8. 【从零开始搭建自己的.NET Core Api框架】(二)搭建项目的整体架构

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架--SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  9. 【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架

    [Vue 快速入门]从零开始搭建 VUE + Element UI后台管理系统框架 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条 ...

  10. 从零开始搭建springboot框架

    大家好,我是杨叔.每天进步一点点,关注我的微信公众号[程序员杨叔],获取更多测试开发技术知识!今天分享的内容是:从零开始搭建springboot框架 一.为什么要学习springboot? Sprin ...

最新文章

  1. 微软出手,干翻 IDEA?网友:先干翻Eclipse吧..
  2. mysql 和 oracle 的一些区别
  3. Linux vi 中移动光标 命令
  4. 边缘计算k8s集群之SuperEdge
  5. A5D2 GPIO测试
  6. 数据结构之插入排序:希尔排序(缩小增量排序)
  7. DELPHI TreeView 文件目录树和 设置节点图标 完整
  8. Node Sass does not yet support your current environment解决
  9. windows2003路由和远程访问 试图连接到数据存储时出错
  10. Linux C/C++开发、嵌入式软件开发面试记录 ( 四)
  11. plc单片机组态软件php_学习plc单片机组态软件,嵌入式的一些心得
  12. Spring boot集成海康威视门禁设备
  13. 七牛base64上传图片带格式
  14. HTTP、HTTPS
  15. 大学物理学下——静电场05高斯定理
  16. 假设检验:p-value,FDR,q-value
  17. pl/sql 本机不安装oracle服务端连接服务器
  18. Davinci视频采集驱动文档
  19. 如何用PHP实现上传图片功能
  20. 简介ImageLoader(一)

热门文章

  1. [IDE工具篇]推荐一款私密性较好的电子日记本
  2. Maven开发笔记(三)—— Maven中dependencies和dependencyManagement
  3. 职中c语言课程,C语言课件下载【深圳职业技术学院】
  4. 移动端用户设置字体放大导致的问题
  5. tomcat自动重启
  6. c语言程序基础设计题,《C语言程序设计基础》习题集(含答案)
  7. EXCEL利用VBA把汉字转拼音(李晓锋版)20180828更新
  8. 三菱plc与计算机无协议通讯,三菱PLC编程口协议与专用协议的区别
  9. 搭建离线版keras中文文档
  10. 微星主板B550M破击炮无U刷BIOS 内存条插3/4卡槽出现DRAM灯常亮,屏幕无法显示