您的位置:首页 > 教程文章 > 编程开发

Springboot拦截器如何获取@RequestBody参数

:0 :2021-10-20 16:28:19

Springboot拦截器获取@RequestBody参数
HttpContextUtils
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
/**
 * HttpContextUtils
 *
 * @author itdragons
 */
public class HttpContextUtils {
 
 /**
  * 获取query参数
  * @param request
  * @return
  */
 public static Map<String, String> getParameterMapAll(HttpServletRequest request) {
  Enumeration<String> parameters = request.getParameterNames();
  Map<String, String> params = new HashMap<>();
  while (parameters.hasMoreElements()) {
   String parameter = parameters.nextElement();
   String value = request.getParameter(parameter);
   params.put(parameter, value);
  }
  return params;
 }
 /**
  * 获取请求Body
  *
  * @param request
  * @return
  */
 public static String getBodyString(ServletRequest request) {
  StringBuilder sb = new StringBuilder();
  InputStream inputStream = null;
  BufferedReader reader = null;
  try {
   inputStream = request.getInputStream();
   reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
   String line = "";
   while ((line = reader.readLine()) != null) {
    sb.append(line);
   }
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (inputStream != null) {
    try {
     inputStream.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   if (reader != null) {
    try {
     reader.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
  return sb.toString();
 }
}
request.getInputStream()只能读取一次,所以当使用拦截器时,controller已经不能获取body中的参数。所以需要增加一个过滤器来解决,使流可以重复读取。代码如下
HttpServletRequest 过滤器:流可重复读
import com.xm.common.utils.HttpContextUtils;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
/***
 * HttpServletRequest 过滤器
 * 解决: request.getInputStream()只能读取一次的问题
 * 目标: 流可重复读
 */
@Component
@WebFilter(filterName = "HttpServletRequestFilter", urlPatterns = "/")
@Order(10000)
public class HttpServletRequestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        ServletRequest requestWrapper = null;
        if(servletRequest instanceof HttpServletRequest) {
            requestWrapper = new RequestWrapper((HttpServletRequest) servletRequest);
        }
        //获取请求中的流如何,将取出来的字符串,再次转换成流,然后把它放入到新request对象中
        // 在chain.doFiler方法中传递新的request对象
        if(null == requestWrapper) {
            filterChain.doFilter(servletRequest, servletResponse);
        } else {
            filterChain.doFilter(requestWrapper, servletResponse);
        }
    }
    @Override
    public void destroy() {
    }
    /***
     * HttpServletRequest 包装器
     * 解决: request.getInputStream()只能读取一次的问题
     * 目标: 流可重复读
     */
    public class RequestWrapper extends HttpServletRequestWrapper {
        /**
         * 请求体
         */
        private String mBody;
        public RequestWrapper(HttpServletRequest request) {
            super(request);
            // 将body数据存储起来
            mBody = getBody(request);
        }
        /**
         * 获取请求体
         * @param request 请求
         * @return 请求体
         */
        private String getBody(HttpServletRequest request) {
            return HttpContextUtils.getBodyString(request);
        }
        /**
         * 获取请求体
         * @return 请求体
         */
        public String getBody() {
            return mBody;
        }
        @Override
        public BufferedReader getReader() throws IOException {
            return new BufferedReader(new InputStreamReader(getInputStream()));
        }
        @Override
        public ServletInputStream getInputStream() throws IOException {
            // 创建字节数组输入流
            final ByteArrayInputStream bais = new ByteArrayInputStream(mBody.getBytes(StandardCharsets.UTF_8));
            return new ServletInputStream() {
                @Override
                public boolean isFinished() {
                    return false;
                }
                @Override
                public boolean isReady() {
                    return false;
                }
                @Override
                public void setReadListener(ReadListener readListener) {
                }
                @Override
                public int read() throws IOException {
                    return bais.read();
                }
            };
        }
    }
}
Springboot下WebRequest获取RequestBody参数
背景:
因为RequestBody是以流的形式读取,流读取一次以后就没有了,所以HttpServletRequest 的 getInputStream() 和 getReader() 都只能读取一次。
如果想要通过WebRequst再次获取RequestBody中的参数,首先需将RequestBody保存,然后通过自定义HttpServletRequestWrapper类,重写当中getReader()和getInputStream()方法;然后再通过Filter中将ServletRequest替换为自定的HttpServletRequestWrapper
一、自定义HttpServletRequestWrapper类
1. CustomizeHttpServletRequestWrapper.java
package com.zsx.http;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.*;
 
@Slf4j
public class CustomizeHttpServletRequestWrapper extends HttpServletRequestWrapper {
    private byte[] buffer = {};
 
    /**
     * Constructs a request object wrapping the given request.
     *
     * @param request The request to wrap
     * @throws IllegalArgumentException if the request is null
     */
    public CustomizeHttpServletRequestWrapper(HttpServletRequest request) {
        super(request);
        log.info("=========CustomizeHttpServletRequestWrapper.CustomizeHttpServletRequestWrapper()=========");
        try {
            InputStream is = request.getInputStream();
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            byte[] buff = new byte[1024];
            int read = 0;
            while ((read = is.read(buff)) > 0) {
                os.write(buff, 0, read);
                this.buffer = os.toByteArray();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    @Override
    public ServletInputStream getInputStream() {
        log.info("=========CustomizeHttpServletRequestWrapper.getInputStream()=========");
        final ByteArrayInputStream is = new ByteArrayInputStream(buffer);
        return new ServletInputStream() {
 
            @Override
            public int read() {
                return is.read();
            }
 
            @Override
            public boolean isFinished() {
                return is.available() == 0;
            }
 
            @Override
            public boolean isReady() {
                return true;
            }
 
            @Override
            public void setReadListener(ReadListener readListener) {
                //do nothing
            }
        };
    }
 
    @Override
    public BufferedReader getReader() {
        log.info("=========CustomizeHttpServletRequestWrapper.getReader()=========");
        return new BufferedReader(new InputStreamReader(this.getInputStream()));
    }
}
二、定义过滤器
1. RequestBodyParameterReadingFilter.java
package com.zsx.filter;
import com.zsx.http.CustomizeHttpServletRequestWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
 
@Slf4j
@Configuration
public class RequestBodyParameterReadingFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        log.info("=========RequestBodyParameterReadingFilter.init()=========");
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        log.info("=========RequestBodyParameterReadingFilter.doFilter()=========");
        if (request instanceof HttpServletRequest) {
            String contentType = request.getContentType();
            // 如果处理上传文件数据,下面方法执行到chain.doFilter()时会出线异常,所以此处只处理@RequestBody数据
            if (!StringUtils.isEmpty(contentType) && contentType.contains(MediaType.APPLICATION_JSON_VALUE)) {
                log.info("=========RequestBodyParameterReadingFilter.doFilter().jsonRequest=========");
                ServletRequest jsonRequest = new CustomizeHttpServletRequestWrapper((HttpServletRequest) request);
                chain.doFilter(jsonRequest, response);
                return;
            }
        }
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
        log.info("=========RequestBodyParameterReadingFilter.destroy()=========");
    }
}
三、定义全局异常处理器
1. GlobalExceptionHandler.java
package com.zsx.exception;
import com.zsx.http.CustomizeHttpServletRequestWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.Nullable;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
 
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.stream.Collectors;
 
@Slf4j
@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
 
    @Override
    @SuppressWarnings("NullableProblems")
    protected ResponseEntity<Object> handleExceptionInternal(Exception ex, @Nullable Object body,
                                                             HttpHeaders headers,
                                                             HttpStatus status,
                                                             WebRequest request) {
        try {
            log.info("=========GeneralExceptionHandler.handleExceptionInternal()=========");
            HttpServletRequest req = ((ServletWebRequest) request).getRequest();
            String bodyParams = req.getReader().lines().collect(Collectors.joining());
            log.info("RequestBody Parameters : {} ", bodyParams);
        } catch (IOException e) {
            e.printStackTrace();
            log.error("GeneralExceptionHandler.handleExceptionInternal().IOException : {}", ex.getMessage());
        }
        return super.handleExceptionInternal(ex, body, headers, status, request);
    }
 
    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> exception(Exception ex, HttpServletRequest request) {
        log.info("=========GeneralExceptionHandler.exception()=========");
        CustomizeHttpServletRequestWrapper wrapper = new CustomizeHttpServletRequestWrapper(request);
        BufferedReader reader = wrapper.getReader();
        String bodyParams = reader.lines().collect(Collectors.joining());
        log.info("RequestBody Parameters : {} ", bodyParams);
        log.error("GeneralExceptionHandler.exception() : {}", ex.getMessage());
        return handleExceptionInternal(ex, bodyParams, HttpHeaders.EMPTY, HttpStatus.NOT_FOUND, new ServletWebRequest(request));
    }
}
四、异常控制器测试类
1. ExceptionTestController.java
package com.zsx.controller;
import com.zsx.entity.User;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/exception")
public class ExceptionTestController {
 
    @PostMapping(value = "/user")
    public String test(@RequestBody User user) {
        throw new RuntimeException("Test RuntimeException");
    }
}
五、启动程序,发送请求
1.
六、查看结果
E:jdkjdk-14.0.1binjava.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59350,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:Users18273AppDataLocalJetBrainsIntelliJIdea2020.2groovyHotSwapgragent.jar -javaagent:C:Users18273AppDataLocalJetBrainsIntelliJIdea2020.2captureAgentdebugger-agent.jar -Dfile.encoding=UTF-8 -classpath "F:IdeaProjectsmy-jooqoutproductionclasses;F:IdeaProjectsmy-jooqoutproductionresources;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-web2.3.1.RELEASE555c4f90141cdbc7637145e413bca0d622ba6796spring-boot-starter-web-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-data-jpa2.3.1.RELEASE5531a4cbd506f13a0b4483ed73c2e75a03d8da46spring-boot-starter-data-jpa-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-jooq2.3.1.RELEASE56972c0f55ef078439045d8548c115cefaeda0f2spring-boot-starter-jooq-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.projectlomboklombok1.18.1248e4e5d60309ebd833bc528dcf77668eab3cd72clombok-1.18.12.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.alibabafastjson1.2.73db7da6dcbd7d97876d626aa79775711fc0dc8cd1fastjson-1.2.73.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.postgresqlpostgresql42.2.121ed5b5f16a67f312a50d420e8bcb7d30b40b033dpostgresql-42.2.12.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.hynnetjson-lib2.4136743e0d12df4e785e62b48618cee169b2ae546json-lib-2.4.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.flywaydbflyway-core6.4.0a9a4101b87df144d928491220829b5e8b51d4b5fflyway-core-6.4.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jooqjooq-codegen3.13.23321b6c25c2f16361e1435760a843d92a63a80e7jooq-codegen-3.13.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jooqjooq-meta3.13.25fbf793257121dd922dd8b5e7bca2bdcda8e9495jooq-meta-3.13.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-tx5.2.5.RELEASE29c07e0d3013ba8fcfa760b2fab457bea19d89bcspring-tx-5.2.5.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.reflectionsreflections.9.121c9d44c563eebe9b8a3afebd29ed5c4646db800creflections-0.9.12.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1net.logstash.logbacklogstash-logback-encoder6.379468d3566f9cf837fa3805dd2de057002d4ea04logstash-logback-encoder-6.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.clientelasticsearch-rest-high-level-client7.8.067055e932c831595575463ef652c8d8ddaae2d28elasticsearch-rest-high-level-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.clientelasticsearch-rest-client7.8.0ab28f6110bdc7d2ec886e1d6ff29a6c8ee30b883elasticsearch-rest-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch7.8.0e87ef417087e4edcb1955d9239fcbc07413160c5elasticsearch-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..guavaguava29.0-jre801142b4c3d0f0770dd29abea50906cacfddd447guava-29.0-jre.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jsonjson2020051841a767de4bde8f01d53856b905c49b2db8862f13json-20200518.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1javax.validationvalidation-api2.0.1.Finalcb855558e6271b1b32e716d24cb85c7f583ce09evalidation-api-2.0.1.Final.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-json2.3.1.RELEASE8342003919c7e5a2470072595ea190cb8a9552c0spring-boot-starter-json-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter2.3.1.RELEASEe0d28696fea064578cb01da346232284f922eba4spring-boot-starter-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-tomcat2.3.1.RELEASE5b599d0da04e724479c22daa47f9bfd62533a2e9spring-boot-starter-tomcat-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-webmvc5.2.7.RELEASEdcd97bcb0a2aa33f272b0031e4771134e327d942spring-webmvc-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-web5.2.7.RELEASE50a27c77e1731f3b7af5c2ae7caf6fe59bcc309spring-web-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-aop2.3.1.RELEASEf42e23091d29bde8d1356e45cf13ad32dae51437spring-boot-starter-aop-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-jdbc2.3.1.RELEASE800b64e76588ea88761ad9108cde762204805d66spring-boot-starter-jdbc-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.dataspring-data-jpa2.3.1.RELEASE1b5e106add569913f0c776aca62f85d8e9ca8ceespring-data-jpa-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1jakarta.transactionjakarta.transaction-api1.3.3c4179d48720a1e87202115fbed6089bdc4195405jakarta.transaction-api-1.3.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1jakarta.persistencejakarta.persistence-api2.2.38f6ea5daedc614f07a3654a455660145286f024ejakarta.persistence-api-2.2.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.hibernatehibernate-core5.4.17.Final3b90ecf6fe93a27a27de9671c9fb25d03ba3def7hibernate-core-5.4.17.Final.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-aspects5.2.7.RELEASEeb48f4ae3e1525179e1ccd10c0e09cfe5c27b8bbspring-aspects-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1jakarta.xml.bindjakarta.xml.bind-api2.3.348e3b9cfc10752fba3521d6511f4165bea951801jakarta.xml.bind-api-2.3.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1jakarta.activationjakarta.activation-api1.2.299f53adba383cb1bf7c3862844488574b559621fjakarta.activation-api-1.2.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jooqjooq3.13.2f356d70330b2aaa5f55858c192927f3e0d1bf89cjooq-3.13.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1commons-beanutilscommons-beanutils1.8.0c651d5103c649c12b20d53731643e5fffceb536commons-beanutils-1.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1commons-collectionscommons-collections3.2.1761ea405b9b37ced573d2df0d1e3a4e0f9edc668commons-collections-3.2.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1net.sf.ezmorphezmorph1.0.61e55d2a0253ea37745d33062852fd2c90027432ezmorph-1.0.6.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1commons-langcommons-lang2.5b0236b252e86419eef20c31a44579d2aee2f0a69commons-lang-2.5.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1commons-loggingcommons-logging1.1.15043bfebc3db072ed80fbd362e7caf00e885d8aecommons-logging-1.1.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-beans5.2.7.RELEASE5465ab17688ed62254fdef411cf883fd5c3b77aspring-beans-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-core5.2.7.RELEASE56e14a3a5e2813534b5db2da1502cd58ab5bc61dspring-core-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.javassistjavassist3.26.0-GAbb2890849968d8d8311ffba8c37b0ce16ce284dcjavassist-3.26.0-GA.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.corejackson-databind2.11.08f5aaf3878b0647ff3a16610af53b1a5c05d9f15jackson-databind-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.pluginmapper-extras-client7.8.06f852909704bb95254700253cce524ddbec82518mapper-extras-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.pluginparent-join-client7.8.0f6a647512b571b91e8f70c4f7db322e1b8bc5f32parent-join-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.pluginaggs-matrix-stats-client7.8.03a5f8ffae973a6d161e4db4276d47b0b79f69f92aggs-matrix-stats-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.pluginrank-eval-client7.8.0e85808baa79a93914b1a5ff8e69fbbde5c74cfb2rank-eval-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearch.pluginlang-mustache-client7.8.0b1d124f3bf24a29dc3475930719c397c7f798ae9lang-mustache-client-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.httpcomponentshttpclient4.5.124023a2a80b64c25926911faf350b50cd2a29220fhttpclient-4.5.12.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.httpcomponentshttpcore4.4.13853b96d3afbb7bf8cc303fe27ee96836a10c1834httpcore-4.4.13.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.httpcomponentshttpasyncclient4.1.4f3a3240681faae3fa46b573a4c7e50cec9db0d86httpasyncclient-4.1.4.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.httpcomponentshttpcore-nio4.4.133f897ace4d7f10f0ea6a58f524a3b105dd483653httpcore-nio-4.4.13.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1commons-codeccommons-codec1.143cb1181b2141a7e752f5bdc998b7ef1849f726cfcommons-codec-1.14.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch-x-content7.8.09cde4498a95ba2fddcc9986d2cc09b9fd8e3634elasticsearch-x-content-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch-cli7.8.07f3df9c96fdc1e109bb1454618f4ad055d436998elasticsearch-cli-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch-core7.8.0f0e483035253f7da1d21586198adab2bf03fc0c9elasticsearch-core-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch-secure-sm7.8.0a5e2cff8506f9ef27534e35d3e75409477071ddaelasticsearch-secure-sm-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchelasticsearch-geo7.8.063b2ff3a13e4678a046e427f02ae7130533ec0e5elasticsearch-geo-7.8.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-core8.5.124212de43c19269f5211f3e79eb2f414c4a0254blucene-core-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-analyzers-common8.5.1704685ddf536e1af4da025b6e6f4e50b9846ef18lucene-analyzers-common-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-backward-codecs8.5.1ab12c24a7c33ef5dfe8b57f17f67fec4a3fee1clucene-backward-codecs-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-grouping8.5.14404f3ff6341b7518843d09141df743bf91a8284lucene-grouping-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-highlighter8.5.1142f5f249aa0803f8283a3d08615e37a56f40e8alucene-highlighter-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-join8.5.1b0a48846662fc504bd7796b5506dad94981fca08lucene-join-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-memory8.5.1ba9e24b90323aacc98a4ac661ac34bfbf0ed66d8lucene-memory-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-misc8.5.1a0418e9bc16fc876448accb828a6ca38ed63d4a8lucene-misc-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-queries8.5.1269c67a4ee9b806cfdacddc211744243cbcbd127lucene-queries-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-queryparser8.5.1ee5ba0e07a178a32987b0a92da149f2104e26dd9lucene-queryparser-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-sandbox8.5.1f1461680109e499d8c58dcaf5d314aeeef41d99alucene-sandbox-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-spatial-extras8.5.1eece1ef3f919634c79b9ae9d99264ac9efa4276clucene-spatial-extras-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-spatial3d8.5.1a8fb2771ac562d60a3c945a4cef0e3742c390329lucene-spatial3d-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.lucenelucene-suggest8.5.1b5613f4995836fd9edae5925ed38559460721492lucene-suggest-8.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.carrotsearchhppc.8.1ffc7ba8f289428b9508ab484b8001dea944ae603hppc-0.8.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1joda-timejoda-time2.10.48c10bb8815109067ce3c91a8e547b5a52e8a1c1ajoda-time-2.10.4.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.tdunningt-digest3.22ab94758b0276a8a26102adf8d528cf6d0567b9at-digest-3.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.hdrhistogramHdrHistogram2.1.9e4631ce165eb400edecfa32e03d3f1be53dee754HdrHistogram-2.1.9.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.logging.log4jlog4j-api2.13.3ec1508160b93d274b1add34419b897bae84c6ca9log4j-api-2.13.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.elasticsearchjna4.5.1da10908ae23dc59b19dc258e63aea1c44621dc3ajna-4.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..guavafailureaccess1.0.11dcf1de382a0bf95a3d8b0849546c88bac1292c9failureaccess-1.0.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..guavalistenablefuture9999.0-empty-to-avoid-conflict-with-guavab421526c5f297295adef1c886e5246c39d4ac629listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..code.findbugsjsr3053.0.225ea2e8b0c338a877313bd4672d3fe056ea78f0djsr305-3.0.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.checkerframeworkchecker-qual2.11.18c43bf8f99b841d23aadda6044329dad9b63c185checker-qual-2.11.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..errorproneerror_prone_annotations2.3.4dac170e4594de319655ffb62f41cbd6dbb5e601eerror_prone_annotations-2.3.4.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com..j2objcj2objc-annotations1.3ba035118bc8bac37d7eff77700720999acd9986dj2objc-annotations-1.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.datatypejackson-datatype-jdk82.11.0cca91d6375258fd7ff2a6abb7bf91eef492bd606jackson-datatype-jdk8-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.datatypejackson-datatype-jsr3102.11.0168b2d0e11478b9f0a1bfccd62d6b5e8547b1e6fjackson-datatype-jsr310-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.modulejackson-module-parameter-names2.11.0950a1e9a7c1093e7ffd92b216d5a0667f1e39058jackson-module-parameter-names-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-autoconfigure2.3.1.RELEASE6d679d6ba26235a0e81ca1d58f9c1024d9427411spring-boot-autoconfigure-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot2.3.1.RELEASEce8d8b6838ecceb68962b975b18682f4237ccf71spring-boot-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-starter-logging2.3.1.RELEASE3f242a91ffddf7485fde1367e1354c7e13024c8spring-boot-starter-logging-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1jakarta.annotationjakarta.annotation-api1.3.559eb84ee0d616332ff44aba065f3888cf002cd2djakarta.annotation-api-1.3.5.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.yamlsnakeyaml1.26a78a8747147d2c5807683e76ec2b633e95c14fe9snakeyaml-1.26.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.glassfishjakarta.el3.0.3dab46ee1ee23f7197c13d7c40fce14817c9017dfjakarta.el-3.0.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.tomcat.embedtomcat-embed-websocket9.0.3633fa5038aa66be6e9cc188000c2188aa4dd33c85tomcat-embed-websocket-9.0.36.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.tomcat.embedtomcat-embed-core9.0.36cf6574dd9c4764e60c548b69da52fc07a5a0a9bdtomcat-embed-core-9.0.36.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-context5.2.7.RELEASE7fd9c4ea311a5d9ab92770be7fc93cc53db334f9spring-context-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-aop5.2.7.RELEASE9cf69f8e888091684c05f0a287bb638502e90725spring-aop-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-expression5.2.7.RELEASEc98d7b10f959f9bedfbbbd4d723cf7a1f17a1f71spring-expression-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.aspectjaspectjweaver1.9.51740dc9140103b796d1722668805fd4cf852780caspectjweaver-1.9.5.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-jdbc5.2.7.RELEASE847d31c90479a34e4e1fe7eeeb47ac89adce3438spring-jdbc-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.zaxxerHikariCP3.4.5aa1a2c00aae8e4ba8308e19940711bb9525b103dHikariCP-3.4.5.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-orm5.2.7.RELEASE32a76d825d8782ff278abe124ded9620444b4a74spring-orm-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.dataspring-data-commons2.3.1.RELEASE5ae66c24c223315d5b31a45590d293e9145c18e9spring-data-commons-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.slf4jslf4j-api1.7.30b5a4b6d16ab13e34a88fae84c35cd5d68cac922cslf4j-api-1.7.30.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.glassfish.jaxbjaxb-runtime2.3.3c46b68a6e3a2d84ba4eb14c6a8a1a9a7be4048bcjaxb-runtime-2.3.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1antlrantlr2.7.783cd2cd674a217ade95a4bb83a8a14f351f48bd0antlr-2.7.7.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1net.bytebuddybyte-buddy1.10.1116ac7e0d4afef10ac30db377e8151aff66a90e1cbyte-buddy-1.10.11.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxmlclassmate1.5.13fe0bed568c62df5e89f4f174c101eab25345b6cclassmate-1.5.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.hibernate.commonhibernate-commons-annotations5.1.0.Final700aeedc4a2089816621948f0379e17cbd17d5dbhibernate-commons-annotations-5.1.0.Final.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jboss.loggingjboss-logging3.4.1.Final40fd4d696c55793e996d1ff3c475833f836c2498jboss-logging-3.4.1.Final.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.jbossjandex2.1.3.Finalcd56603e39eb1421560b71daa584348ecfd9e0b8jandex-2.1.3.Final.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.dom4jdom4j2.1.3a75914155a9f5808963170ec20653668a2ffd2fddom4j-2.1.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.reactivestreamsreactive-streams1.0.3d9fb7a7926ffa635b3dcaa5049fb2bfa25b3e7d0reactive-streams-1.0.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1javax.xml.bindjaxb-api2.3.18531ad5ac454cc2deb9d4d32c40c4d7451939b5djaxb-api-2.3.1.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframeworkspring-jcl5.2.7.RELEASE72282e1f89c58284632220437b5a1e8066c53d7dspring-jcl-5.2.7.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.corejackson-annotations2.11.0c626020ae55d19c690d25cb51c1532ba76e5890fjackson-annotations-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.corejackson-core2.11.0f84302e14648f9f63c0c73951054aeb2ff0b810ajackson-core-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.github.spullara.mustache.javacompiler.9.61b8707299c34406ed0ba40bbf8513352ac4765c9compiler-0.9.6.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.dataformatjackson-dataformat-cbor2.11.03d9b7ba55da2883823b34eb9a33f186688098400jackson-dataformat-cbor-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.dataformatjackson-dataformat-smile2.11.0a232adc9dc1dfa5ba97aa6b065e556c2872614b0jackson-dataformat-smile-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.fasterxml.jackson.dataformatjackson-dataformat-yaml2.11.0f5314fe164fc1e3bdcaf20fe0851759917312d9ejackson-dataformat-yaml-2.11.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1net.sf.jopt-simplejopt-simple5.0.298cafc6081d5632b61be2c9e60650b64ddbc637cjopt-simple-5.0.2.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.apache.logging.log4jlog4j-to-slf4j2.13.3966f6fd1af4959d6b12bfa880121d4a2b164f857log4j-to-slf4j-2.13.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1ch.qos.logbacklogback-classic1.2.37c4f3c474fb2c041d8028740440937705ebb473alogback-classic-1.2.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.slf4jjul-to-slf4j1.7.30d58bebff8cbf70ff52b59208586095f467656c30jul-to-slf4j-1.7.30.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.glassfish.jaxbtxw22.3.312f70b0ea4fc1ad45315e842f63f7c9a46f46530txw2-2.3.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.sun.istackistack-commons-runtime3.0.114293b5f4e4e89d598f62bb2ba73b32132e7c3a27istack-commons-runtime-3.0.11.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1javax.activationjavax.activation-api1.2.085262acf3ca9816f9537ca47d5adeabaead7cb16javax.activation-api-1.2.0.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1ch.qos.logbacklogback-core1.2.3864344400c3d4d92dfeb0a305dc87d953677c03clogback-core-1.2.3.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1org.springframework.bootspring-boot-devtools2.3.1.RELEASE8f976b7b525d0f0b9c175c2fa5dfe9a07aa48503spring-boot-devtools-2.3.1.RELEASE.jar;E:gradlegradle-5.6.4cachesmodules-2files-2.1com.sun.activationjakarta.activation1.2.274548703f9851017ce2f556066659438019e7eb5jakarta.activation-1.2.2.jar;E:JetBrainsIntelliJ IDEA 2020.1.4libidea_rt.jar" com.zsx.MyJooqApplication
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
Connected to the target VM, address: '127.0.0.1:59350', transport: 'socket'
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
 
  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _
( ( )___ | '_ | '_| | '_ / _` |
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)
 
2020-08-22 15:21:47.372  INFO 17512 --- [  restartedMain] com.zsx.MyJooqApplication                : Starting MyJooqApplication on zsx with PID 17512 (F:IdeaProjectsmy-jooqoutproductionclasses started by 18273 in F:IdeaProjectsmy-jooq)
2020-08-22 15:21:47.374  INFO 17512 --- [  restartedMain] com.zsx.MyJooqApplication                : No active profile set, falling back to default profiles: default
2020-08-22 15:21:47.408  INFO 17512 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2020-08-22 15:21:47.408  INFO 17512 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2020-08-22 15:21:47.988  INFO 17512 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFERRED mode.
2020-08-22 15:21:48.007  INFO 17512 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14ms. Found 0 JPA repository interfaces.
2020-08-22 15:21:48.471  INFO 17512 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8088 (http)
2020-08-22 15:21:48.478  INFO 17512 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-08-22 15:21:48.479  INFO 17512 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.36]
2020-08-22 15:21:48.549  INFO 17512 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-08-22 15:21:48.549  INFO 17512 --- [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1141 ms
2020-08-22 15:21:48.575  INFO 17512 --- [  restartedMain] c.z.f.RequestBodyParameterReadingFilter  : =========RequestBodyParameterReadingFilter.init()=========
2020-08-22 15:21:48.641  INFO 17512 --- [  restartedMain] o.f.c.internal.license.VersionPrinter    : Flyway Community Edition 6.4.0 by Redgate
2020-08-22 15:21:48.645  WARN 17512 --- [  restartedMain] com.zaxxer.hikari.HikariConfig           : HikariPool-1 - idleTimeout has been set but has no effect because the pool is operating as a fixed size pool.
2020-08-22 15:21:48.645  INFO 17512 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-08-22 15:21:48.707  INFO 17512 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-08-22 15:21:48.718  INFO 17512 --- [  restartedMain] o.f.c.internal.database.DatabaseFactory  : Database: jdbc: (PostgreSQL 12.0)
2020-08-22 15:21:48.739  INFO 17512 --- [  restartedMain] o.f.core.internal.command.DbValidate     : Successfully validated 2 migrations (execution time 00:00.011s)
2020-08-22 15:21:48.743  INFO 17512 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Current version of schema "jooq": 1
2020-08-22 15:21:48.743  INFO 17512 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Schema "jooq" is up to date. No migration necessary.
2020-08-22 15:21:48.798  INFO 17512 --- [  restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-08-22 15:21:48.803  INFO 17512 --- [  restartedMain] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'taskScheduler'
2020-08-22 15:21:48.842  INFO 17512 --- [         task-1] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-08-22 15:21:48.846  INFO 17512 --- [  restartedMain] com.zsx.config.WebErrorConfiguration     : =========WebErrorConfiguration.errorAttributes()=========
2020-08-22 15:21:48.852  INFO 17512 --- [  restartedMain] com.zsx.error.CustomizeErrorController   : =========CustomizeErrorController.CustomizeErrorController()=========
2020-08-22 15:21:48.903  INFO 17512 --- [         task-1] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.17.Final
2020-08-22 15:21:49.034  INFO 17512 --- [         task-1] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-08-22 15:21:49.147  INFO 17512 --- [         task-1] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect
2020-08-22 15:21:49.184  WARN 17512 --- [  restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2020-08-22 15:21:49.299  INFO 17512 --- [         task-1] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2020-08-22 15:21:49.308  INFO 17512 --- [         task-1] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2020-08-22 15:21:49.672  INFO 17512 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2020-08-22 15:21:49.720  INFO 17512 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8088 (http) with context path ''
2020-08-22 15:21:49.722  INFO 17512 --- [  restartedMain] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories…
2020-08-22 15:21:49.723  INFO 17512 --- [  restartedMain] DeferredRepositoryInitializationListener : Spring Data repositories initialized!
2020-08-22 15:21:49.733  INFO 17512 --- [  restartedMain] com.zsx.MyJooqApplication                : Started MyJooqApplication in 5.2 seconds (JVM running for 5.834)
2020-08-22 15:22:22.085  INFO 17512 --- [nio-8088-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-08-22 15:22:22.086  INFO 17512 --- [nio-8088-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-08-22 15:22:22.090  INFO 17512 --- [nio-8088-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 4 ms
2020-08-22 15:22:26.415  INFO 17512 --- [nio-8088-exec-1] c.z.f.RequestBodyParameterReadingFilter  : =========RequestBodyParameterReadingFilter.doFilter()=========
2020-08-22 15:22:29.158  INFO 17512 --- [nio-8088-exec-1] c.z.f.RequestBodyParameterReadingFilter  : =========RequestBodyParameterReadingFilter.doFilter().jsonRequest=========
2020-08-22 15:22:29.221  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.CustomizeHttpServletRequestWrapper()=========
2020-08-22 15:22:29.549  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getInputStream()=========
2020-08-22 15:22:38.373  INFO 17512 --- [nio-8088-exec-1] c.zsx.exception.GlobalExceptionHandler1  : =========GeneralExceptionHandler.exception()=========
2020-08-22 15:22:38.749  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.CustomizeHttpServletRequestWrapper()=========
2020-08-22 15:22:38.749  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getInputStream()=========
2020-08-22 15:22:39.078  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getReader()=========
2020-08-22 15:22:39.080  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getInputStream()=========
2020-08-22 15:22:52.032  INFO 17512 --- [nio-8088-exec-1] c.zsx.exception.GlobalExceptionHandler1  : RequestBody Parameters : {    "name": "zsx",    "age": 20}
2020-08-22 15:22:53.573 ERROR 17512 --- [nio-8088-exec-1] c.zsx.exception.GlobalExceptionHandler1  : GeneralExceptionHandler.exception() : Test RuntimeException
2020-08-22 15:22:59.374  INFO 17512 --- [nio-8088-exec-1] c.zsx.exception.GlobalExceptionHandler1  : =========GeneralExceptionHandler.handleExceptionInternal()=========
2020-08-22 15:23:00.326  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getReader()=========
2020-08-22 15:23:00.327  INFO 17512 --- [nio-8088-exec-1] c.z.h.CustomizeHttpServletRequestWrapper : =========CustomizeHttpServletRequestWrapper.getInputStream()=========
2020-08-22 15:23:01.363  INFO 17512 --- [nio-8088-exec-1] c.zsx.exception.GlobalExceptionHandler1  : RequestBody Parameters : {    "name": "zsx",    "age": 20}
2020-08-22 15:23:05.272  WARN 17512 --- [nio-8088-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [java.lang.RuntimeException: Test RuntimeException]
从以上控制台打印结果可以看出获取参数结果成功!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持无名。

java中基本注解的知识点总结
Java elasticSearch-api的具体操作步骤讲解

同类资源