自定义mvc框架(有代码)

  • Post author:
  • Post category:其他


会逐步添加AOP

总结:搭建了一个简单的MVC框架,定义了一系列的注解,@Controller定义Controller类,@Inject注解实现依赖注入,@Action定义Action方法。通过Helper类来初始化MVC框架;通过DispatcherServlet来处理所有请求;根据请求方法与请求路径来调用具体的Action方法,判断Action方法的返回值,若为View类型,跳转JSP页面,若为Data类型,则返回JSON数据。

1.建立PropsUtil工具类(加载属性文件以及获取属性)

2.建立ArrayUtil工具类(判断数组是否为空等)

3.建立CollectionUtil工具类(判断Collection(Map)是否为空)

4.建立StreamUtil工具类(流操作工具类,如:从输入流获取字符串)

5.建立CodecUtil工具类(用于URL的编码与解码操作)

6.建立jsonUtil工具类(处理Json与POJO之间的转换,基于jackson实现)

1.建立ConfigConstant的常量类(维护配置文件——smart.properties的相关配置,如:jdbc相关内容——名字(如:String

JDBC_URL=“smart.framework.jdbc.url”))

2.建立ConfigHelper助手类(定义静态方法——关于获取常量类中所包含的内容的静态方法(如:getJdbcUsername()))

3.建立一个ClassUtil工具类(提供与类操作相关的方法,如:获取类加载器、加载类、获取类等)

4.建立注解类(如:@Controller、@Action、@Service、@Inject)

5.建立ClassHelper助手类(类操作助手类,封装ClassUtil,让其获取应用包名下所有类、Service类、Controller类和Bean类)

6.建立一个反射工具类——ReflectionUtil(通过类来实例化对象——实现Bean容器)

7.建立Bean助手类(Bean容器)——BeanHelper(封装反射工具类,获取或设置Bean的实例及映射)

8.创建IocHelper助手类(完成依赖注入功能,从BeanHelper获取BeanMap(记录了类与对象的映射关系),遍历这个映射关系,取出里面的Bean类和Bean对象,在通过反射获取类的成员变量。遍历这些变量,判断是否带有注入注解,如果存在,从BeanMap中取出Bean实例,然后通过RelfectionUtil修改当前成员变量的值)

9.建立实体类——Request类(封装请求信息,如:方法、路径)

10.建立实体类——Handle类(封装Action信息——处理对象,如:Controller类、Action方法)

11.创建ControllerHelper类(获取定义了Controller注解的类,可以通过反射获取该类中所有带有某注解(如:Action)的方法,获取注解中的请求表达式,进而获取请求方法与请求路径,封装请求对象与处理对象,建立映射关系,放入Map中,并提供一个根据请求方法与请求路径获取处理对象的方法)

12.各个助手类的静态代码块会被加载,可以建立一个统一的类集中加载——HelperLoader类

13.建立实体类——Param(封装请求参数对象,是一个Map)

14.建立实体类——View类(返回视图,path——视图路径、model——模型数据是个Map)

15.建立实体类——Data类(返回数据类型为json——Object)

16.建立请求转发器——DispatcherServlet(继承HttpServlet类)类(初始化、获取对象、注册jsp的servlet,注册静态资源默认servlet,重写service方法(获取请求方法与请求路径、action处理器、获取Controller类及其Bean实例、创建请求参数对象、调用Action方法、处理Action方法——返回视图或者数据(request的forward方法还或者输出json数据)))

源代码下载:

https://download.csdn.net/download/weixin_43075298/11123094



版权声明:本文为weixin_43075298原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。