Search in sources :

Example 1 with Aop

use of com.weicoder.web.aop.Aop in project weicoder by wdcode.

the class BasicServlet method invoke.

private Object invoke(Object action, Method method, Object[] params, HttpServletRequest request, HttpServletResponse response) {
    // 获得所有aop
    List<Aops> aops = aops(action, method);
    try {
        // 前置执行
        aops.forEach(aop -> aop.before(action, params, request, response));
        // 执行方法返回结果
        Object result = method.invoke(action, params);
        // Object result = method.invoke(action, U.E.isEmpty(params) ? null : params);
        if (result == null && void.class.equals(method.getReturnType()))
            result = StateCode.SUCCESS;
        // 后置执行
        for (Aops aop : aops) aop.after(action, params, result, request, response);
        // 返回结果
        return result;
    } catch (StateException e) {
        return e.state();
    } catch (Exception e) {
        Logs.error(e, "action invoke method={} args={} params={}", method.getName(), Arrays.toString(params), Arrays.toString(method.getParameters()));
        // 异常执行
        aops.forEach(aop -> aop.exception(e, action, params, request, response));
        // 返回错误
        return StateCode.ERROR;
    }
}
Also used : Validators(com.weicoder.web.validator.Validators) Arrays(java.util.Arrays) StringUtil(com.weicoder.common.util.StringUtil) Maps(com.weicoder.common.lang.Maps) RequestUtil(com.weicoder.web.util.RequestUtil) ServletException(javax.servlet.ServletException) Ips(com.weicoder.web.annotation.Ips) Aops(com.weicoder.web.aop.Aops) W(com.weicoder.common.W) U(com.weicoder.common.U) Redirect(com.weicoder.web.annotation.Redirect) DateUtil(com.weicoder.common.util.DateUtil) AsyncContext(javax.servlet.AsyncContext) HttpServletRequest(javax.servlet.http.HttpServletRequest) Get(com.weicoder.web.annotation.Get) Parameter(java.lang.reflect.Parameter) Map(java.util.Map) LogFactory(com.weicoder.common.log.LogFactory) IpUtil(com.weicoder.common.util.IpUtil) BeanUtil(com.weicoder.common.util.BeanUtil) TokenEngine(com.weicoder.common.token.TokenEngine) Method(java.lang.reflect.Method) Asyn(com.weicoder.common.annotation.Asyn) Lists(com.weicoder.common.lang.Lists) Log(com.weicoder.common.log.Log) CookieUtil(com.weicoder.web.util.CookieUtil) HttpServlet(javax.servlet.http.HttpServlet) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) Cookies(com.weicoder.web.annotation.Cookies) ResponseUtil(com.weicoder.web.util.ResponseUtil) Json(com.weicoder.web.annotation.Json) WebServlet(javax.servlet.annotation.WebServlet) C(com.weicoder.common.C) Action(com.weicoder.web.annotation.Action) List(java.util.List) ClassUtil(com.weicoder.common.util.ClassUtil) StateCode(com.weicoder.common.bean.StateCode) WebParams(com.weicoder.web.params.WebParams) Post(com.weicoder.web.annotation.Post) Aop(com.weicoder.web.aop.Aop) StateParams(com.weicoder.common.params.StateParams) Forward(com.weicoder.web.annotation.Forward) StateException(com.weicoder.common.exception.StateException) TokenBean(com.weicoder.common.token.TokenBean) Logs(com.weicoder.common.log.Logs) WebCommons(com.weicoder.web.common.WebCommons) State(com.weicoder.web.annotation.State) StateException(com.weicoder.common.exception.StateException) Aops(com.weicoder.web.aop.Aops) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) StateException(com.weicoder.common.exception.StateException)

Aggregations

C (com.weicoder.common.C)1 U (com.weicoder.common.U)1 W (com.weicoder.common.W)1 Asyn (com.weicoder.common.annotation.Asyn)1 StateCode (com.weicoder.common.bean.StateCode)1 StateException (com.weicoder.common.exception.StateException)1 Lists (com.weicoder.common.lang.Lists)1 Maps (com.weicoder.common.lang.Maps)1 Log (com.weicoder.common.log.Log)1 LogFactory (com.weicoder.common.log.LogFactory)1 Logs (com.weicoder.common.log.Logs)1 StateParams (com.weicoder.common.params.StateParams)1 TokenBean (com.weicoder.common.token.TokenBean)1 TokenEngine (com.weicoder.common.token.TokenEngine)1 BeanUtil (com.weicoder.common.util.BeanUtil)1 ClassUtil (com.weicoder.common.util.ClassUtil)1 DateUtil (com.weicoder.common.util.DateUtil)1 IpUtil (com.weicoder.common.util.IpUtil)1 StringUtil (com.weicoder.common.util.StringUtil)1 Action (com.weicoder.web.annotation.Action)1