从零写javaweb框架
cwjokaka
GitHub: https://github.com/cwjokaka
展开
-
【从零写javaweb框架】(一)搭建开发环境
编程的第一步都是从搭建项目开始,写框架也不例外。 第一步:创建框架项目 首先创建我们的框架的maven项目,创建好后,修改pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo原创 2018-01-21 17:26:20 · 665 阅读 · 0 评论 -
【从零写javaweb框架】(十一)为框架添加事务处理
上一篇我们为框架添加了AOP特性【从零写javaweb框架】(十)加载AOP框架,现在可以利用这个特性来为框架添加事务处理。 定义一个事务注解: package org.smart4j.framework.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention原创 2018-02-18 23:54:01 · 415 阅读 · 0 评论 -
【从零写javaweb框架】(十)加载AOP框架
上一篇我们开发了一个简单的AOP框架【从零写javaweb框架】(九)开发AOP框架,现在需要在项目启动时自动加载AOP框架。 首先在之前写的BeanHelper类中添加一个setBean方法,用于将Bean实例放入BeanMap中: /** * 设置Bean实例 */ public static void setBean(Class cls, Object原创 2018-02-17 11:24:11 · 455 阅读 · 0 评论 -
【从零写javaweb框架】(九)开发AOP框架
上一篇我们完成搭建了一个简单的MVC框架,使其可以通过DispatchServlet来处理所有的请求【从零写javaweb框架】(八)请求转发器,这一篇会实现AOP功能。一.什么是AOPAOP(Aspect-Oriented Programming)是对面向对象编程(OOP)的一种补充,可以译为面向切面编程。其中切面是AOP的一个术语,表示从业务逻辑中分离出来的横切逻辑,比如性能监控,日志记录、权...原创 2018-02-16 17:53:14 · 420 阅读 · 2 评论 -
【从零写javaweb框架】(六)加载Controller
在上一篇我们实现了依赖注入功能【从零写javaweb框架】(五)实现依赖注入功能 现在编写一个ControllerHelper 通过ClassHelper,可以获取所有定义了Controller注解的类,然后再通过反射获取该类中所有带有Action注解的方法,获取Action注解中的请求表达式,进而获取请求方法与请求路径,封装一个请求对象(Request)与处理对象(Handler),最后将R原创 2018-01-28 16:05:13 · 918 阅读 · 0 评论 -
【从零写javaweb框架】(五)实现依赖注入功能
上一篇我们写了一个方便反射的工具类ReflectionUtil,和一个用来实例化和保存Bean的容器BeanHelper。 【从零写javaweb框架】(四)实现Bean容器 经过前几篇的积累,我们现在终于可以写依赖注入的功能了,一个简单的IOC并不难实现。 先简单介绍一下IOC(Inversion of Control,控制反转),意思是实例化过程并不是由开发者用new的方式来实例化,原创 2018-01-26 00:43:26 · 521 阅读 · 0 评论 -
【从零写javaweb框架】(四)实现Bean容器
上一章,我们写了ClassUtil类,用于提供与类操作相关的方法,然后又写了Controller/Service注解来标识框架要加载的类,Action用于标识Controller里的方法,Inject用于实现依赖注入,最后再写了一个ClassHelper来实行Bean类的加载和存取。【从零写javaweb框架】(三)开发一个类加载器 本章我们会写一个Bean的容器,用来实例化和保存Bean。原创 2018-01-25 22:35:37 · 355 阅读 · 0 评论 -
【从零写javaweb框架】(二)定义和加载配置项
上一篇我们搭建了项目环境【从零写javaweb框架】(一)搭建开发环境,接下来要做的是定义和加载框架的配置项 第一步:定义配置项 打开上一篇创建好的demo1示例项目,在src/main/resources目录下创建一个smart.properties文件,内容如下: #MySQL驱动 smart.framework.jdbc.driver=com.mysql.jdbc.Driver #原创 2018-01-21 22:41:06 · 613 阅读 · 0 评论 -
【从零写javaweb框架】(三)开发一个类加载器
上一篇我们写了4个常用工具类,1个维护常量的类,并且通过依赖它们用ConfigHelper实现了配置文件的读取,上一篇链接:【从零写javaweb框架】(二)定义和加载配置项,现在需要开发一个类加载器,用来加载包名下的所有类。 现在写一个ClassUtil类,用于提供与类操作相关的方法(本篇文章都会在在框架项目中进行): package org.smart4j.framework.原创 2018-01-23 22:57:48 · 621 阅读 · 0 评论 -
【从零写javaweb框架】(七)初始化框架
在上一篇【从零写javaweb框架】(六)加载Controller,我封装了请求对象(Request)与处理对象(Handler),并写了ControllerHelper来维护维护Request与Handler之间的映射关系。 集合上几篇编写的ClassHelper/BeanHelper/IocHelper/ControllerHelper,我们现在需要做的是在项目启动时把他们都加载进来。 p原创 2018-01-28 23:03:26 · 447 阅读 · 0 评论 -
【从零写javaweb框架】(八)请求转发器
上一篇我们实现了把ClassHelper/BeanHelper/IocHelper/ControllerHelper在项目启动时加载进来。【从零写javaweb框架】(七)初始化框架 现在开始写请求转发器,请求转发器是MVC的核心:需要编写一个servlet,让它来处理所有的请求。 从HttpServletRequest对象中获取请求方法与请求路径,通过ControllerHelper.get原创 2018-01-31 00:49:56 · 790 阅读 · 0 评论 -
【从零写javaweb框架】(零)前言
前言:首先想说的是,本系列的文章都是围绕黄勇写的《架构探险:从零开始写JavaWeb框架》一书,写这系列文章一方面是为了督促自己学习框架方面的知识,一方面是想分享自己在学习过程中对这本书的理解和感想。文章会从原书第3章开始写起(前两章主要内容是在IDEA中创建项目、写一个最简单的Web应用、Git仓库的简单使用),学习顺序和代码内容大部分会与原书一致,不一致的地方会指出来,中间会插入我个人的理解和...原创 2018-01-21 14:22:41 · 731 阅读 · 0 评论