EasyFramework帮助文档

框架概述

此框架是以netty为 通信设施,不需要依赖web容器,可以直接以jar包的方式独立运行,支持AOP,MVC,IOC。 后续会继续优化,扩展 加入持久层的支持,以及更多的工具包。

以打造更简洁高效的开发体验为目标。


如果有疑问的话,可以关注我的微信公众号:

由于知乎不让发二维码, 所以我的公众号 账号是:easyframework


开发准备

一、导入依赖jar包

<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-aop</artifactId>
	<version>0.0.1</version>
</dependency>
<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-ioc</artifactId>
	<version>0.0.1</version>
</dependency>
<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-mvc</artifactId>
	<version>0.0.1</version>
</dependency>
<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-core</artifactId>
	<version>0.0.1</version>
</dependency>
<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-netty</artifactId>
	<version>0.0.1</version>
</dependency>

<dependency>
	<groupId>com.github.serlockholmes</groupId>
	<artifactId>easy-server</artifactId>
	<version>0.0.1</version>
</dependency>

<dependency>
	<groupId>io.netty</groupId>
	<artifactId>netty-all</artifactId>
	<version>5.0.0.Alpha2</version>
</dependency>

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.47</version>
</dependency>

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.25</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-jdk14</artifactId>
	<version>1.7.25</version>
</dependency>

<dependency>
	<groupId>org.ow2.asm</groupId>
	<artifactId>asm</artifactId>
	<version>5.2</version>
</dependency>
<dependency>
	<groupId>cglib</groupId>
	<artifactId>cglib</artifactId>
	<version>3.2.5</version>
</dependency>

如果要用log4j打印日志的话,可以把slf4j-jdk14这个包 删掉,并导入log4j的jar包


二、 创建程序入口

在你的项目中创建一个启动类,并创建main方法,如下所示

三、创建配置文件

在resource目录下,新建一个文件: easy.json,文件名和路径是必须遵守的,不然框架无法读取,配置文件为json格式 如下图所示:


port:端口号

sessionTime:session失效时间(毫秒)

control:控制层接口后缀

content_type:响应头数据格式

inters:拦截器

cross_domain:跨域规则

cross_domain->origin:允许跨域的域名

cross_domain->methods:允许跨域的请求方式


这里面可以是空白的,只写一对花括号{},端口默认是8088,sessionTime默认是3600000毫秒,contrl默认是.html,content_type 默认是"text/json; charset=UTF-8",其他不配则没有。


IOC的使用

一、 定义bean

在类上面加上EasyBean注解,即可将此类定义为一个bean,如下图:

其中name属性是必须赋值的,用于注入的时候作为标识


二、 注入bean

在需要注入的属性上加上resource注解,即可将bean对象注入,如下图:

其中name属性是需要注入的那个bean的注解中的name值,不能为空


AOP的使用

一、aop监听类的定义

创建一个java类,实现EasyAop接口,如下图:

startMethod 是被监听的方法执行前执行的

endMethod 是被监听的方法执行后执行的

参数args 是被监听的方法的所有参数


在需要被监听的方法上加上EasyAop注解,即可监听此方法,如下图:

其中className的属性就是 AOP监听类的class,需要注意的是:

1. 同一个类里面的方法,使用的监听类必须相同。不可以不同。

2. 只有easyBean可以监听,controller以及没有定义为easyBean的类都不可以监听


MVC的使用

一、 定义controller

在类上面加上Controller注解,即可将此类定义为一个controller,如下图:

二、映射controller接口

在要映射的方法上,加上EasyMapping注解即可映射,如下图:

其中value值 是 用来作为访问的名字的,method是指定此方法只能通过什么方式的请求访问。


如果要请求当前示例中的这个方法,则url应该这么写:

http://你的域名:你定义的端口号/test.你定义的后缀


三、获取请求参数

easy框架提供了三种方式来获取请求参数

1. 获取所有的参数,并返回一个map

这个map中的key就你的参数的name值,而value是一个数组,里面是你的参数值,如果当前name只对应了一个值,那么取下标0 即可。


2. 用name值 取对应的参数

这种方式 如果一个name对应了多个值(前端的复选框基本是同样的name),那么只能取到第一个。


3. 用name值 取对应的参数

这个方式是用来弥补 第二种方式的缺陷的,他可以将name对应的多个值 一起取到,并返回一个list集合


四、获取文件流


easy框架提供了两种方式 获取文件流


1. 用name值获取

FileUpload 里面包含三个属性:


需要哪个 直接取就好了


2. 全部获取到

这个map的key,是请求参数的name值,value是一个FileUpload对象。


五、返回json数据

跟springboot一样,直接将对象返回,框架会自动转成json,并响应给客户端,如下图:

如果不想通过框架返回,可以返回一个字符串“no”,然后调用response对象中的send方法 自行返回。

拦截器的使用

一、创建拦截器

新建一个java类,并实现 EasyInters 接口,如下图:

startRequest 是在控制层接口被执行前执行的

endRequest 是在控制层接口被执行后执行的

endRequest方法中的obj参数,是控制层接口的返回值


拦截器返回SUCCESS 则表示 拦截通过,如果要拦截不通过的话,直接将 提示信息返回即可。


二、配置拦截器

配置文件中的inters属性就是用来配拦截器的,如下图:

可以配置多个,class是拦截器的类全名,pattern是 要拦截的接口名(支持通配符,如果不是* 要以斜杠开头)

猜你喜欢

转载自blog.csdn.net/sherlockholmes11/article/details/80078031