天天看點

Springboot AOP 攔截 直接傳回結果資料

 示例代碼:

@Around("pointCut()")
    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletResponse response = attributes.getResponse();
        //校驗
        Boolean statusCheck = XXXXXStatusCheck(response);
        if (!statusCheck) {
            Result<Boolean> result = new Result<>();
            result.setData(false);
            result.setSuccess(false);
            result.setResultCode(ResultCode.XXXXX_NOT_CONFIG);
            returnData(result,response);
        }
        return joinPoint.proceed();
    }

    /**
     * 傳回資料
     *
     * @param result
     * @param response
     * @throws IOException
     */
    public void returnData(Result<Boolean> result, HttpServletResponse response) throws IOException {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json; charset=utf-8");
        ObjectMapper objectMapper = new ObjectMapper();
        //這裡傳提示語可以改成自己項目的傳回資料封裝的類
        response.getWriter().println(objectMapper.writeValueAsString(result));
        return;
    }      

代碼簡析:

Springboot AOP 攔截 直接傳回結果資料

繼續閱讀