分享一段代码, 38 行用 Java 实现 Koa 核心功能
admin 108 2019-03-10 15:20:38
package org.jianzhao.onion;
/**
* Onion is just like an Onion
*
* @param <T> Context
* @author cbdyzj
* @since 2018.3.23
*/
public final class Onion<T> {
private Middleware<T> middleware = (ctx, nxt) -> nxt.next();
public Onion<T> use(Middleware<T> middleware) {
this.middleware = this.middleware.compose(middleware);
return this;
}
public void handle(T context) throws Exception {
this.middleware.via(context,() -> { });
}
public interface Middleware<T> {
void via(T context, Next next) throws Exception;
default Middleware<T> compose(Middleware<T> middleware) {
return (ctx, nxt) -> this.via(ctx, () -> middleware.via(ctx, nxt));
}
}
public interface Next {
void next() throws Exception;
}
}
To share this paste please copy this url and send to your friends
预览
还没有评论.
最新分享
- PHP用redis实现计数器功能从而实现限流
PHP | 48 | 2周前
- PHP批量下载QQ空间相册照片链接
PHP | 42 | 2周前
- PHP对一个接口进行请求次数限制
PHP | 32 | 2周前
- PHP汉字转拼音类文件
PHP | 34 | 2周前
- laravel 表单验证 api自定义错误信息返回json 与 路由别名场景验证
PHP | 37 | 2周前
- QQ或微信内打开网站提示用浏览器打开代码
PHP | 57 | 3周前
- 简易防CC攻击刷新跳转代码
PHP | 55 | 3周前