Geisha是一个类似于SpringMVC的蝇量级MVC框架,它主要由以下两个部分组成:

  1. IOC容器 - 实现依赖注入的组件
  2. MVC - HTTP请求处理组件

IOC容器的主要工作方式为:

  1. 系统启动
  2. 通过文件扫描获取到项目中所有的class文件,并为之创建Class对象
  3. 扫描所有加上了指定注解的类或方法或变量,通过反射创建对象并把对象保存在对象池中
  4. 扫描指定注解,从对象池中获取到指定对象并把其注入到对应对象的变量上
  5. 工作完成

MVC组件的工作方式:

  1. 扫描指定注解,根据注解把HTTP请求和某个方法的映射关系保存起来
  2. 启动服务器
  3. 根据HTTP请求的内容从保存的映射关系中找到对应的方法,构造方法的参数并且执行该方法
  4. 把方法的返回值作为响应返回到客户端,一次请求结束

项目源码:https://github.com/RitterHou/Geisha