All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.jkcode.jkmvc.interceptor.IRequestInterceptor.kt Maven / Gradle / Ivy

package net.jkcode.jkmvc.interceptor

import java.util.concurrent.CompletableFuture

/**
 * 请求拦截器
 *    泛型 R 是请求类型
 *
 * @author shijianhang<[email protected]>
 * @date 2019-03-01 11:39 AM
 */
interface IRequestInterceptor {

    /**
     * 拦截action, 插入前置后置处理
     *
     * @param req
     * @param action 被拦截的处理
     * @return 返回CompletableFuture: 1是给业务方调用, 让他能设置回调, 2是给拦截器链表的下一个拦截器调用, 让他能够更准确的确定后置处理的调用时机
     */
    fun intercept(req: R, action: () -> Any?): CompletableFuture
    /*{
        // 前置处理 -- 可以直接抛异常, 可以直接return

        // 转future
        val future = trySupplierFuture(action)

        // 后置处理
        future.whenComplete{ r, ex ->

        }
    }*/

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy