zoukankan      html  css  js  c++  java
  • 补充netty权威指南学习自定义协议实现,与springboot集成

    鉴于netty权威指南上面的自定义协议实现部分不完整,为此本博主,将自定义协议这块补充了以下,以供大家参考,自定义协议主要采用长度进行粘包处理,编解码自定义实现,具体如下

    工程分三个部分

    1、common  主要包含实体,枚举,一些公用的编解码常量等

    2、service 服务端

    3、client   客户端

    下面上代码

    pom主要添加上相应依赖,这里主要粘贴部分主要依赖

     <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>4.1.50.Final</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.0.5</version>
            </dependency>

    common

    entity

    package com.drawnblue.nettycommon.entity;
    
    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    import java.util.Map;
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public class Head implements Serializable {
        private Integer crcCode;
        private Integer length;
        private Long sessionId;
        private Byte type;
        private Byte priority;
        private Map<String,Object> attachment;
    
    }
    
    
    package com.drawnblue.nettycommon.entity;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Body implements Serializable {
        private Object payload;
    }
    
    
    package com.drawnblue.nettycommon.entity;
    
    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public class Message implements Serializable {
    
        private Head head;
        private Body body;
    
    }

    编解码

    package com.drawnblue.nettycommon.codec;
    
    import com.drawnblue.nettycommon.constant.NettyConstant;
    import com.drawnblue.nettycommon.entity.Body;
    import com.drawnblue.nettycommon.entity.Head;
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.util.ByteUtil;
    import io.netty.buffer.ByteBuf;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.handler.codec.ByteToMessageDecoder;
    import io.netty.util.CharsetUtil;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    @Service(value = "decode")
    public class MsgDecode extends ByteToMessageDecoder {
        @Override
        protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List<Object> out) throws Exception {
            Logger log = LoggerFactory.getLogger(this.getClass());
            log.info("解码");
            Integer length = byteBuf.readInt();
            Integer crcCode = byteBuf.readInt();
            Long sessionId = byteBuf.readLong();
            Byte type = byteBuf.readByte();
            Byte priority = byteBuf.readByte();
    
            Map<String,Object> map = new HashMap<>();
            Integer temp = NettyConstant.HEAD_LENGTH;
            if(byteBuf.isReadable()){
                Short size = byteBuf.readShort();
                temp+=2;
                while(map.size()<size){
                    int keyLen = byteBuf.readInt();
                    byte[] key = new byte[keyLen];
                    byteBuf.readBytes(key,0,keyLen);
                    int valueLen = byteBuf.readInt();
                    byte[] value = new byte[valueLen];
                    byteBuf.readBytes(value,0,valueLen);
                    map.put(new String(key, CharsetUtil.UTF_8), ByteUtil.byteToObject(value));
                    temp=temp+keyLen+valueLen;
                }
    
            }
            Object payload = null;
            if (byteBuf.isReadable()) {
                int bodyLen =length - temp;
                byte[] body = new byte[bodyLen];
                byteBuf.readBytes(body);
                payload = ByteUtil.byteToObject(body);
            }
            Head head = Head.builder().length(length).crcCode(crcCode).attachment(map).priority(priority)
                    .sessionId(sessionId).type(type).build();
            Body body = new Body(payload);
            Message message = Message.builder().head(head).body(body).build();
            log.info("解码结束!message={}",message.toString());
            out.add(message);
        }
    }
    
    
    
    
    
    
    package com.drawnblue.nettycommon.codec;
    
    import com.drawnblue.nettycommon.entity.Body;
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.util.ByteUtil;
    import io.netty.buffer.ByteBuf;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.handler.codec.MessageToByteEncoder;
    import io.netty.util.CharsetUtil;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    import java.util.Map;
    import java.util.Set;
    
    @Service("encode")
    public class MsgEncode extends MessageToByteEncoder<Message> {
        Logger log = LoggerFactory.getLogger(this.getClass());
        @Override
        protected void encode(ChannelHandlerContext channelHandlerContext, Message msg, ByteBuf out){
           log.info("编码 msg={}",msg.toString());
            Integer length = msg.getHead().getLength();
            Integer crcCode = msg.getHead().getCrcCode();
            Long sessionId = msg.getHead().getSessionId();
            Byte type = msg.getHead().getType();
            Byte priority = msg.getHead().getPriority();
            out.writeInt(length);
            out.writeInt(crcCode);
            out.writeLong(sessionId);
            out.writeByte(type);
            out.writeByte(priority);
            Map<String, Object> attachment = msg.getHead().getAttachment();
            if(attachment!=null && !attachment.isEmpty()){
                out.writeShort(attachment.size());//用两个字节记录可扩展字段attachment的大小,short是16位,2个字节
                if(attachment.size()>0){
                    Set<Map.Entry<String, Object>> entries = attachment.entrySet();
                    for (Map.Entry<String, Object> map : entries){
                        String key = map.getKey();
                        out.writeInt(key.length());//用4个字节记录key长度
                        out.writeCharSequence(key, CharsetUtil.UTF_8);
                        Object obj = map.getValue();
                        byte[] v = ByteUtil.toByteArray(obj);
                        int vlen = v.length;
                        out.writeInt(vlen);
                        out.writeBytes(v);
                    }
                }
            }
            Body body  = msg.getBody();
            if(body!=null){
                Object payload = msg.getBody().getPayload();
                if(payload!=null){
                    byte[] load = ByteUtil.toByteArray(payload);
                    out.writeBytes(load);
                }
            }
            log.info("编码调用结束");
        }
    }

    消息类型枚举

    package com.drawnblue.nettycommon.enums;
    
    public enum MsgTypeEnum {
    
        BUZ_REQUEST(0,"业务请求"),
        BUZ_RESPONSE(1,"业务相应"),
        BUZ_ONEWAY(2,"即是请求也是响应"),
        HANDSHAKE_REQUEST(3,"握手请求"),
        HANDSHAKE_RESPONSE(4,"握手响应"),
        HEARTBEAT_REQUEST(5,"心跳请求"),
        HEARTBEAT_RESPONSE(6,"心跳响应"),
        ;
        private Integer type;
        private String name;
        MsgTypeEnum(Integer type,String name){
           this.name = name;
           this.type = type;
        }
    
        public Integer getType() {
            return type;
        }
        public String getName(){
            return name;
        }
    }

    字节工具类

    package com.drawnblue.nettycommon.util;
    
    import com.drawnblue.nettycommon.entity.Body;
    import com.drawnblue.nettycommon.entity.Message;
    
    import java.io.*;
    import java.util.Map;
    
    public class ByteUtil {
    
        public static byte[] toByteArray(Object obj){
            if(obj == null){
                return null;
            }
            byte[] result =null;
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            try {
                ObjectOutputStream oos =  oos = new ObjectOutputStream(bos);
                oos.writeObject(obj);
                oos.flush();
                result = bos.toByteArray();
                bos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }
    
        public static Object byteToObject(byte[] obj){
            if(obj==null || obj.length==0){
                return null;
            }
            Object result =null;
            ByteArrayInputStream bis = new ByteArrayInputStream(obj);
            try {
                ObjectInputStream ois = new ObjectInputStream(bis);
                result = ois.readObject();
                ois.close();
                bis.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        public static int calculateLenth(Message msg){
            int total = 18;
            Map<String,Object> attachment = msg.getHead().getAttachment();
            if(attachment!=null && !attachment.isEmpty()){
                int maplen = 2;//k-v对个数所占长度初始化
                for(Map.Entry<String,Object> entry : attachment.entrySet()){
                    int keylen = entry.getKey().length();
                    Object value = entry.getValue();
                    byte[] v = ByteUtil.toByteArray(value);
                    int vlen = v.length;
                    maplen = maplen+keylen+vlen;
                }
                total+=maplen;
            }
            Body body = msg.getBody();
            if(null !=body){
                Object payload = body.getPayload();
                byte[] data = ByteUtil.toByteArray(payload);
                if(data!=null){
                    total+=data.length;
                }
            }
            return total;
        }
    }

    一些常量

    package com.drawnblue.nettycommon.constant;
    
    public class NettyConstant {
        public static final Long LOGIN_SESSION_ID = 0L;
        public static final Integer CRC_CODE= 0xABEF;
        public static final Byte PRIORITY = 1;
        public static final Integer HEAD_LENGTH =18;
    }

     和springboot整合的服务端代码

    package com.drawnblue.netty.handler;
    
    import com.drawnblue.nettycommon.codec.MsgDecode;
    import com.drawnblue.nettycommon.codec.MsgEncode;
    import io.netty.bootstrap.ServerBootstrap;
    import io.netty.channel.ChannelFuture;
    import io.netty.channel.ChannelInitializer;
    import io.netty.channel.ChannelOption;
    import io.netty.channel.EventLoopGroup;
    import io.netty.channel.nio.NioEventLoopGroup;
    import io.netty.channel.socket.SocketChannel;
    import io.netty.channel.socket.nio.NioServerSocketChannel;
    import io.netty.handler.timeout.IdleStateHandler;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    import java.util.concurrent.TimeUnit;
    @Component
    public class TcpService implements CommandLineRunner {
        Logger log = LoggerFactory.getLogger(this.getClass());
        @Value("${netty.port}")
        private int port;
        @Override
        public void run(String... args){
            EventLoopGroup boss = new NioEventLoopGroup();
            EventLoopGroup work = new NioEventLoopGroup();
            try{
                ServerBootstrap serverBootstrap = new ServerBootstrap();
                serverBootstrap.group(boss,work).channel(NioServerSocketChannel.class)
    //                    .handler(new LoggingHandler(LogLevel.INFO))
                        .childOption(ChannelOption.SO_KEEPALIVE,true)
                        .childHandler(new ChannelInitializer<SocketChannel>() {
                            @Override
                            protected void initChannel(SocketChannel sc) throws Exception {
                                sc.pipeline()
                                        .addLast(new MsgDecode())
                                        .addLast(new MsgEncode())
                                        .addLast(new HeartBeatRespHandler())
                                        .addLast(new MessageHandler())
                                        .addLast(new ResponseBuz());
                            }
                        });
                log.info("netty 服务器监听端口:{}",port);
                try {
                    ChannelFuture future = future = serverBootstrap.bind(port).sync();
                    future.channel().closeFuture().sync();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
            }finally {
                boss.shutdownGracefully();
                work.shutdownGracefully();
            }
        }
    
    }
    package com.drawnblue.netty.handler;
    
    import com.drawnblue.nettycommon.constant.NettyConstant;
    import com.drawnblue.nettycommon.entity.Head;
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.enums.MsgTypeEnum;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    import io.netty.channel.ChannelPipeline;
    
    public class HeartBeatRespHandler extends ChannelInboundHandlerAdapter {
    
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object obj) throws Exception {
            ChannelPipeline pipeline = ctx.channel().pipeline();
            ChannelPipeline pipeline1 = ctx.pipeline();
            System.out.println("pipeline is equal"+(pipeline==pipeline1)+"   "+(ctx.channel()==ctx.pipeline().channel()));
    
    
            Message msg = (Message)obj;
            System.out.println("HeartBeatRespHandler receive msg:"+msg.toString());
            if(msg!=null && msg.getHead().getType()== MsgTypeEnum.HEARTBEAT_REQUEST.getType().byteValue()){
                Head head = Head.builder().sessionId(NettyConstant.LOGIN_SESSION_ID).priority(NettyConstant.PRIORITY)
                        .crcCode(NettyConstant.CRC_CODE).type(MsgTypeEnum.HEARTBEAT_RESPONSE.getType().byteValue())
                        .length(NettyConstant.HEAD_LENGTH).build();
                msg.setHead(head);
                ctx.channel().writeAndFlush(msg);
            }else{
                ctx.fireChannelRead(obj);
            }
    
        }
    
        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
            System.out.println(cause);
            ctx.close();
    
        }
    }
    package com.drawnblue.netty.handler;
    
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.enums.MsgTypeEnum;
    import io.netty.channel.Channel;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;
    
    import java.net.InetSocketAddress;
    
    @Component
    public class MessageHandler extends ChannelInboundHandlerAdapter {
        Logger log = LoggerFactory.getLogger(this.getClass());
        private String writeList="192.168.25.92:8800,/127.0.0.1:8800";
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            Message message = (Message)msg;
            System.out.println(msg.toString());
            if(message!=null && message.getHead().getType()== MsgTypeEnum.HANDSHAKE_REQUEST.getType().byteValue()){
                Channel channel = ctx.channel();
                String remoteIp = channel.remoteAddress().toString();
                InetSocketAddress addr = (InetSocketAddress) channel.remoteAddress();
                System.out.println(addr.toString());
                System.out.println(remoteIp+"	"+writeList.contains(remoteIp));
                if(writeList.contains(remoteIp)){
                    message.getHead().setType(MsgTypeEnum.HANDSHAKE_RESPONSE.getType().byteValue());
                   log.info("message 发送出去~~~~~~{}",message.toString());
                    ctx.writeAndFlush(message);
                }
            }else{
            ctx.fireChannelRead(msg);
            }
    
        }
    
        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
            super.channelReadComplete(ctx);
        }
    
        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
            System.out.println(cause);
            Channel channel = ctx.channel();
            if(channel.isActive()){
                ctx.close();
            }
        }
    }
    package com.drawnblue.netty.handler;
    
    import io.netty.buffer.ByteBuf;
    import io.netty.buffer.Unpooled;
    import io.netty.channel.*;
    import io.netty.channel.group.ChannelGroup;
    import io.netty.channel.group.DefaultChannelGroup;
    import io.netty.util.CharsetUtil;
    import io.netty.util.concurrent.GlobalEventExecutor;
    
    public class ResponseBuz extends ChannelInboundHandlerAdapter {
        private static ChannelGroup channelGroup = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
    
        @Override
        public void handlerAdded(ChannelHandlerContext ctx) throws Exception {
            Channel channel = ctx.channel();
            channelGroup.add(channel);
            channelGroup.writeAndFlush("客户["+channel.remoteAddress()+"]加入聊天");
        }
    
        @Override
        public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {
            Channel channel = ctx.channel();
            channelGroup.writeAndFlush("客户["+channel.remoteAddress()+"]离开了聊天");
        }
    
        @Override
        public void channelActive(ChannelHandlerContext ctx) throws Exception {
    
            System.out.println(ctx.channel().remoteAddress()+"上线了");
        }
    
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            ByteBuf buf = (ByteBuf) msg;
            byte[] b = new byte[buf.readableBytes()];
            buf.readBytes(b);
            String str = new String(b);
            Channel channel = ctx.channel();
            System.out.println("接收到客户端【"+ channel.remoteAddress()+"】发送过来的消息:"+buf.toString(CharsetUtil.UTF_8));
            channelGroup.forEach(ch->{
                if(channel!=ch){
                    ch.writeAndFlush(Unpooled.copiedBuffer(("[" + channel.remoteAddress() + "发送了消息:]" + str+"
    ").getBytes()) );
                }else{
                    ch.writeAndFlush(Unpooled.copiedBuffer(("【自己】发送的消息:"+str).getBytes()));
                }
            });
        }
    
        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
        }
    
        @Override
        public void channelInactive(ChannelHandlerContext ctx) throws Exception {
            System.out.println(ctx.channel().remoteAddress()+"离线了");
        }
    
        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
            System.out.println(cause);
            ctx.flush();
        }
    }

    客户端代码

    package com.drawnblue.netty.client;
    
    import com.drawnblue.netty.handler.HeartBeatReqHandler;
    import com.drawnblue.netty.handler.LoginReqHandler;
    import com.drawnblue.nettycommon.codec.MsgDecode;
    import com.drawnblue.nettycommon.codec.MsgEncode;
    import io.netty.bootstrap.Bootstrap;
    import io.netty.channel.Channel;
    import io.netty.channel.ChannelFuture;
    import io.netty.channel.ChannelInitializer;
    import io.netty.channel.nio.NioEventLoopGroup;
    import io.netty.channel.socket.nio.NioSocketChannel;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    @Component
    public class TCPClient implements CommandLineRunner {
        Logger log = LoggerFactory.getLogger(this.getClass());
        @Value("${netty.host}")
        private String host;
        @Value("${netty.port}")
        private Integer port;
    
        @Override
        public void run(String... args){
            NioEventLoopGroup client = new NioEventLoopGroup();
            Bootstrap bootstrap = new Bootstrap();
            try{
                bootstrap.group(client).channel(NioSocketChannel.class).localAddress("127.0.0.1",8800)
                        .handler(new ChannelInitializer<Channel>() {
                            @Override
                            protected void initChannel(Channel channel) throws Exception {
                                channel.pipeline().addLast(new MsgDecode())
                                        .addLast(new MsgEncode())
                                        .addLast(new HeartBeatReqHandler())
                                        .addLast(new LoginReqHandler());
                            }
                        });
                ChannelFuture f = bootstrap.connect(host,port).sync();
                if(f.isSuccess()){
                   log.info("客户端连接主机:{},ip:{}成功!",this.host,this.port);
                }
                f.channel().closeFuture().sync();
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                client.shutdownGracefully();
            }
        }
    
    }
    package com.drawnblue.netty.handler;
    
    import com.drawnblue.nettycommon.constant.NettyConstant;
    import com.drawnblue.nettycommon.entity.Head;
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.enums.MsgTypeEnum;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    
    import java.util.concurrent.TimeUnit;
    
    public class HeartBeatReqHandler extends ChannelInboundHandlerAdapter {
    
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object obj) throws Exception {
            Message msg = (Message) obj;
            System.out.println("heartbeatReqhandler receive msg:"+msg.toString());
            if(msg!=null && msg.getHead().getType()== MsgTypeEnum.HANDSHAKE_RESPONSE.getType().byteValue()){
                ctx.executor().scheduleAtFixedRate(new Runnable() {
                    @Override
                    public void run() {
                        Head head = Head.builder().sessionId(NettyConstant.LOGIN_SESSION_ID).priority(NettyConstant.PRIORITY)
                                .crcCode(NettyConstant.CRC_CODE).type(MsgTypeEnum.HEARTBEAT_REQUEST.getType().byteValue())
                                .length(NettyConstant.HEAD_LENGTH).build();
                        Message message = Message.builder().head(head).build();
                        System.out.println("clent send heartbeat***");
                        ctx.channel().writeAndFlush(message);
                    }
                },0,50, TimeUnit.SECONDS);
            }else if(msg!=null && msg.getHead().getType()== MsgTypeEnum.HEARTBEAT_RESPONSE.getType().byteValue()){
                System.out.println("client receive heartbeat msg:"+msg.toString());
            }else{
                ctx.fireChannelRead(obj);
            }
        }
    
        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
            System.out.println(cause);
            ctx.close();
        }
    }
    package com.drawnblue.netty.handler;
    
    import com.drawnblue.nettycommon.entity.Body;
    import com.drawnblue.nettycommon.entity.Head;
    import com.drawnblue.nettycommon.entity.Message;
    import com.drawnblue.nettycommon.enums.MsgTypeEnum;
    import com.drawnblue.nettycommon.util.ByteUtil;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class LoginReqHandler extends ChannelInboundHandlerAdapter {
    
        @Override
        public void channelActive(ChannelHandlerContext ctx) throws Exception {
            Head head = Head.builder().priority((byte)1).sessionId(23l).crcCode(1).type(MsgTypeEnum.HANDSHAKE_REQUEST.getType().byteValue()).build();
            Map<String,Object> attachment = new HashMap<>();
            attachment.put("dev","2534");
            attachment.put("name","张三");
            head.setAttachment(attachment);
            Body body = new Body();
            body.setPayload("welcom to shenzhen");
            Message message = Message.builder().head(head).body(body).build();
            int len = ByteUtil.calculateLenth(message);
            message.getHead().setLength(len);
            ctx.writeAndFlush(message);
        }
    
        @Override
        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
            Message message = (Message)msg;
            if(message!=null && message.getHead().getType()==MsgTypeEnum.HANDSHAKE_RESPONSE.getType().byteValue()){
                System.out.println("kkkkkkkkkkkkkkk");
            }else {
                ctx.fireChannelRead(msg);
            }
    
        }
    
        @Override
        public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
            super.channelReadComplete(ctx);
        }
    
        @Override
        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
            super.exceptionCaught(ctx, cause);
        }
    }

    application.yml,服务端类似

    server.port=8003
    netty.host=127.0.0.1
    netty.port=8889
    logback.customer.level=debug
    logging.config=classpath:conf/logback.xml
    netty.clientId=abc123

     启动服务端后启动客户端运行如下:

    服务端

    D:	opbandSoftjavajdk1.8injava.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=62532 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:G:softIDEAIntelliJ IDEA 2018.2.5libidea_rt.jar=62533:G:softIDEAIntelliJ IDEA 2018.2.5in" -Dfile.encoding=UTF-8 -classpath D:	opbandSoftjavajdk1.8jrelibcharsets.jar;D:	opbandSoftjavajdk1.8jrelibdeploy.jar;D:	opbandSoftjavajdk1.8jrelibextaccess-bridge-64.jar;D:	opbandSoftjavajdk1.8jrelibextcldrdata.jar;D:	opbandSoftjavajdk1.8jrelibextdnsns.jar;D:	opbandSoftjavajdk1.8jrelibextjaccess.jar;D:	opbandSoftjavajdk1.8jrelibextjfxrt.jar;D:	opbandSoftjavajdk1.8jrelibextlocaledata.jar;D:	opbandSoftjavajdk1.8jrelibext
    ashorn.jar;D:	opbandSoftjavajdk1.8jrelibextsunec.jar;D:	opbandSoftjavajdk1.8jrelibextsunjce_provider.jar;D:	opbandSoftjavajdk1.8jrelibextsunmscapi.jar;D:	opbandSoftjavajdk1.8jrelibextsunpkcs11.jar;D:	opbandSoftjavajdk1.8jrelibextzipfs.jar;D:	opbandSoftjavajdk1.8jrelibjavaws.jar;D:	opbandSoftjavajdk1.8jrelibjce.jar;D:	opbandSoftjavajdk1.8jrelibjfr.jar;D:	opbandSoftjavajdk1.8jrelibjfxswt.jar;D:	opbandSoftjavajdk1.8jrelibjsse.jar;D:	opbandSoftjavajdk1.8jrelibmanagement-agent.jar;D:	opbandSoftjavajdk1.8jrelibplugin.jar;D:	opbandSoftjavajdk1.8jrelib
    esources.jar;D:	opbandSoftjavajdk1.8jrelib
    t.jar;G:drawnblue
    etty-component
    ettyService	argetclasses;E:localRepositoryorgspringframeworkootspring-boot-starter2.1.6.RELEASEspring-boot-starter-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot2.1.6.RELEASEspring-boot-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkspring-context5.1.8.RELEASEspring-context-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-aop5.1.8.RELEASEspring-aop-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-beans5.1.8.RELEASEspring-beans-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-expression5.1.8.RELEASEspring-expression-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot-autoconfigure2.1.6.RELEASEspring-boot-autoconfigure-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot-starter-logging2.1.6.RELEASEspring-boot-starter-logging-2.1.6.RELEASE.jar;E:localRepositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;E:localRepositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;E:localRepositoryorgapachelogginglog4jlog4j-to-slf4j2.11.2log4j-to-slf4j-2.11.2.jar;E:localRepositoryorgapachelogginglog4jlog4j-api2.11.2log4j-api-2.11.2.jar;E:localRepositoryorgslf4jjul-to-slf4j1.7.26jul-to-slf4j-1.7.26.jar;E:localRepositoryjavaxannotationjavax.annotation-api1.3.2javax.annotation-api-1.3.2.jar;E:localRepositoryorgspringframeworkspring-core5.1.8.RELEASEspring-core-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-jcl5.1.8.RELEASEspring-jcl-5.1.8.RELEASE.jar;E:localRepositoryorgyamlsnakeyaml1.23snakeyaml-1.23.jar;E:localRepositoryio
    etty
    etty-all4.1.50.Final
    etty-all-4.1.50.Final.jar;G:drawnblue
    etty-component
    etty-common	argetclasses;E:localRepositoryorgprojectlomboklombok1.16.18lombok-1.16.18.jar;E:localRepositorycnhutoolhutool-all5.0.5hutool-all-5.0.5.jar;E:localRepositoryorgslf4jslf4j-api1.7.26slf4j-api-1.7.26.jar com.drawnblue.netty.ServiceApplication
    10:10:42,499 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/G:/drawnblue/netty-component/nettyService/target/classes/conf/logback.xml] 
    10:10:42,500 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 minutes
    10:10:42,503 |-WARN in Logger[org.springframework.core.env.PropertySourcesPropertyResolver] - No appenders present in context [default] for logger [org.springframework.core.env.PropertySourcesPropertyResolver].
    10:10:42,504 |-INFO in ch.qos.logback.classic.joran.action.ContextNameAction - Setting logger context name as [elk]
    10:10:42,504 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
    10:10:42,504 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
    10:10:42,520 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.apache.ibatis] to TRACE
    10:10:42,520 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@197d671 - Propagating TRACE level on Logger[com.apache.ibatis] onto the JUL framework
    10:10:42,521 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.Connection] to DEBUG
    10:10:42,521 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@197d671 - Propagating DEBUG level on Logger[java.sql.Connection] onto the JUL framework
    10:10:42,521 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.Statement] to DEBUG
    10:10:42,521 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@197d671 - Propagating DEBUG level on Logger[java.sql.Statement] onto the JUL framework
    10:10:42,521 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.PreparedStatement] to DEBUG
    10:10:42,521 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@197d671 - Propagating DEBUG level on Logger[java.sql.PreparedStatement] onto the JUL framework
    10:10:42,521 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
    10:10:42,521 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
    10:10:42,521 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
    10:10:42,521 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@5a955565 - Registering current configuration as safe fallback point
    2020-09-08 10:10:42.530 {main} DEBUG o.s.b.c.l.ClasspathLoggingApplicationListener - Application started with classpath: [file:/D:/topbandSoft/java/jdk1.8/jre/lib/charsets.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/deploy.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/access-bridge-64.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/cldrdata.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/dnsns.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/jaccess.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/jfxrt.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/localedata.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/nashorn.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunec.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunjce_provider.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunmscapi.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunpkcs11.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/zipfs.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/javaws.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jce.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jfr.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jfxswt.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jsse.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/management-agent.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/plugin.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/resources.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/rt.jar, file:/G:/drawnblue/netty-component/nettyService/target/classes/, file:/E:/localRepository/org/springframework/boot/spring-boot-starter/2.1.6.RELEASE/spring-boot-starter-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot/2.1.6.RELEASE/spring-boot-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-context/5.1.8.RELEASE/spring-context-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-aop/5.1.8.RELEASE/spring-aop-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-beans/5.1.8.RELEASE/spring-beans-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-expression/5.1.8.RELEASE/spring-expression-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-autoconfigure/2.1.6.RELEASE/spring-boot-autoconfigure-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-starter-logging/2.1.6.RELEASE/spring-boot-starter-logging-2.1.6.RELEASE.jar, file:/E:/localRepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, file:/E:/localRepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, file:/E:/localRepository/org/apache/logging/log4j/log4j-to-slf4j/2.11.2/log4j-to-slf4j-2.11.2.jar, file:/E:/localRepository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar, file:/E:/localRepository/org/slf4j/jul-to-slf4j/1.7.26/jul-to-slf4j-1.7.26.jar, file:/E:/localRepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar, file:/E:/localRepository/org/springframework/spring-core/5.1.8.RELEASE/spring-core-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-jcl/5.1.8.RELEASE/spring-jcl-5.1.8.RELEASE.jar, file:/E:/localRepository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar, file:/E:/localRepository/io/netty/netty-all/4.1.50.Final/netty-all-4.1.50.Final.jar, file:/G:/drawnblue/netty-component/netty-common/target/classes/, file:/E:/localRepository/org/projectlombok/lombok/1.16.18/lombok-1.16.18.jar, file:/E:/localRepository/cn/hutool/hutool-all/5.0.5/hutool-all-5.0.5.jar, file:/E:/localRepository/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar, file:/G:/soft/IDEA/IntelliJ%20IDEA%202018.2.5/lib/idea_rt.jar]
    
      .   ____          _            __ _ _
     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.6.RELEASE)
    
    2020-09-08 10:10:42.583 {main} INFO  com.drawnblue.netty.ServiceApplication - Starting ServiceApplication on LICY with PID 18736 (G:drawnblue
    etty-component
    ettyService	argetclasses started by Administrator in G:drawnblue
    etty-component)
    2020-09-08 10:10:42.583 {main} DEBUG com.drawnblue.netty.ServiceApplication - Running with Spring Boot v2.1.6.RELEASE, Spring v5.1.8.RELEASE
    2020-09-08 10:10:42.583 {main} INFO  com.drawnblue.netty.ServiceApplication - No active profile set, falling back to default profiles: default
    2020-09-08 10:10:42.583 {main} DEBUG org.springframework.boot.SpringApplication - Loading source class com.drawnblue.netty.ServiceApplication
    2020-09-08 10:10:42.614 {main} DEBUG o.s.b.context.config.ConfigFileApplicationListener - Loaded config file 'file:/G:/drawnblue/netty-component/nettyService/target/classes/application.properties' (classpath:/application.properties)
    2020-09-08 10:10:42.614 {main} DEBUG o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@4e91d63f
    2020-09-08 10:10:42.626 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'
    2020-09-08 10:10:42.636 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory'
    2020-09-08 10:10:42.708 {main} DEBUG o.s.c.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [G:drawnblue
    etty-component
    ettyService	argetclassescomdrawnblue
    ettyhandlerMessageHandler.class]
    2020-09-08 10:10:42.725 {main} DEBUG o.s.c.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [G:drawnblue
    etty-component
    ettyService	argetclassescomdrawnblue
    ettyhandlerTcpService.class]
    2020-09-08 10:10:42.798 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.application.admin.enabled' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:42.841 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.condition.BeanTypeRegistry'
    2020-09-08 10:10:42.856 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.application.admin.enabled' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:42.935 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'propertySourcesPlaceholderConfigurer'
    2020-09-08 10:10:42.939 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor'
    2020-09-08 10:10:42.940 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata'
    2020-09-08 10:10:42.940 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory'
    2020-09-08 10:10:42.942 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor'
    2020-09-08 10:10:42.943 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor'
    2020-09-08 10:10:42.945 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor'
    2020-09-08 10:10:42.948 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'serviceApplication'
    2020-09-08 10:10:42.952 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'messageHandler'
    2020-09-08 10:10:42.954 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'tcpService'
    2020-09-08 10:10:42.957 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.port' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:42.957 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.port' in PropertySource 'environmentProperties' with value of type String
    2020-09-08 10:10:42.959 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.AutoConfigurationPackages'
    2020-09-08 10:10:42.963 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration'
    2020-09-08 10:10:42.965 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration'
    2020-09-08 10:10:42.974 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mbeanExporter'
    2020-09-08 10:10:42.975 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'objectNamingStrategy'
    2020-09-08 10:10:42.979 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'mbeanExporter' via factory method to bean named 'objectNamingStrategy'
    2020-09-08 10:10:42.982 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mbeanServer'
    2020-09-08 10:10:42.984 {main} DEBUG org.springframework.jmx.support.JmxUtils - Found MBeanServer: com.sun.jmx.mbeanserver.JmxMBeanServer@5b2133b1
    2020-09-08 10:10:42.988 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration'
    2020-09-08 10:10:42.988 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration$$EnhancerBySpringCGLIB$$415c9eb0] - unable to determine constructor/method parameter names
    2020-09-08 10:10:42.989 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration' via constructor to bean named 'environment'
    2020-09-08 10:10:42.992 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'springApplicationAdminRegistrar'
    2020-09-08 10:10:43.000 {main} DEBUG o.s.b.a.SpringApplicationAdminMXBeanRegistrar$SpringApplicationAdmin - Application Admin MBean registered with name 'org.springframework.boot:type=Admin,name=SpringApplication'
    2020-09-08 10:10:43.000 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration'
    2020-09-08 10:10:43.001 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration'
    2020-09-08 10:10:43.002 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration$$EnhancerBySpringCGLIB$$eaaa0afb] - unable to determine constructor/method parameter names
    2020-09-08 10:10:43.002 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties'
    2020-09-08 10:10:43.009 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration' via constructor to bean named 'spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties'
    2020-09-08 10:10:43.010 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'buildProperties'
    2020-09-08 10:10:43.020 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration'
    2020-09-08 10:10:43.020 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration$$EnhancerBySpringCGLIB$$3a4f96b8] - unable to determine constructor/method parameter names
    2020-09-08 10:10:43.021 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties'
    2020-09-08 10:10:43.023 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration' via constructor to bean named 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties'
    2020-09-08 10:10:43.026 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'taskExecutorBuilder'
    2020-09-08 10:10:43.029 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration'
    2020-09-08 10:10:43.030 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'taskSchedulerBuilder'
    2020-09-08 10:10:43.030 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties'
    2020-09-08 10:10:43.031 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'taskSchedulerBuilder' via factory method to bean named 'spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties'
    2020-09-08 10:10:43.038 {main} DEBUG o.s.jmx.export.annotation.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
    2020-09-08 10:10:43.038 {main} DEBUG o.s.jmx.export.annotation.AnnotationMBeanExporter - Autodetecting user-defined JMX MBeans
    2020-09-08 10:10:43.065 {main} DEBUG o.s.b.a.l.ConditionEvaluationReportLoggingListener - 
    
    
    ============================
    CONDITIONS EVALUATION REPORT
    ============================
    
    
    Positive matches:
    -----------------
    
       GenericCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition)
    
       JmxAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter' (OnClassCondition)
          - @ConditionalOnProperty (spring.jmx.enabled=true) matched (OnPropertyCondition)
    
       JmxAutoConfiguration#mbeanExporter matched:
          - @ConditionalOnMissingBean (types: org.springframework.jmx.export.MBeanExporter; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       JmxAutoConfiguration#mbeanServer matched:
          - @ConditionalOnMissingBean (types: javax.management.MBeanServer; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JmxAutoConfiguration#objectNamingStrategy matched:
          - @ConditionalOnMissingBean (types: org.springframework.jmx.export.naming.ObjectNamingStrategy; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       NoOpCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition)
    
       ProjectInfoAutoConfiguration#buildProperties matched:
          - @ConditionalOnResource found location ${spring.info.build.location:classpath:META-INF/build-info.properties} (OnResourceCondition)
          - @ConditionalOnMissingBean (types: org.springframework.boot.info.BuildProperties; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched:
          - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       SimpleCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)
    
       SpringApplicationAdminJmxAutoConfiguration matched:
          - @ConditionalOnProperty (spring.application.admin.enabled=true) matched (OnPropertyCondition)
    
       SpringApplicationAdminJmxAutoConfiguration#springApplicationAdminRegistrar matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskExecutionAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' (OnClassCondition)
    
       TaskExecutionAutoConfiguration#applicationTaskExecutor matched:
          - @ConditionalOnMissingBean (types: java.util.concurrent.Executor; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskExecutionAutoConfiguration#taskExecutorBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskSchedulingAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition)
    
       TaskSchedulingAutoConfiguration#taskSchedulerBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
    
    Negative matches:
    -----------------
    
       ActiveMQAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)
    
       AopAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.aspectj.lang.annotation.Aspect' (OnClassCondition)
    
       ArtemisAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)
    
       BatchAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.batch.core.launch.JobLauncher' (OnClassCondition)
    
       CacheAutoConfiguration:
          Did not match:
             - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition)
          Matched:
             - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition)
    
       CacheAutoConfiguration.CacheManagerJpaDependencyConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)
             - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
    
       CaffeineCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.github.benmanes.caffeine.cache.Caffeine', 'org.springframework.cache.caffeine.CaffeineCacheManager' (OnClassCondition)
    
       CassandraAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.cassandra.ReactiveSession' (OnClassCondition)
    
       CassandraRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Session' (OnClassCondition)
    
       ClientHttpConnectorAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition)
    
       CloudServiceConnectorsAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.cloud.config.java.CloudScanConfiguration' (OnClassCondition)
    
       CodecsAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.http.codec.CodecConfigurer' (OnClassCondition)
    
       CouchbaseAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition)
    
       CouchbaseCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'com.couchbase.client.spring.cache.CouchbaseCacheManager' (OnClassCondition)
    
       CouchbaseDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       DataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
    
       DataSourceTransactionManagerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)
    
       DispatcherServletAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition)
    
       EhCacheCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'net.sf.ehcache.Cache', 'org.springframework.cache.ehcache.EhCacheCacheManager' (OnClassCondition)
    
       ElasticsearchAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       ElasticsearchDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       ElasticsearchRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       EmbeddedLdapAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition)
    
       EmbeddedMongoAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration:
          Did not match:
             - @ConditionalOnWebApplication did not find reactive or servlet web application classes (OnWebApplicationCondition)
    
       ErrorMvcAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition)
    
       ErrorWebFluxAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)
    
       FlywayAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition)
    
       FreeMarkerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'freemarker.template.Configuration' (OnClassCondition)
    
       GroovyTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition)
    
       GsonAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)
    
       H2ConsoleAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition)
    
       HazelcastAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)
    
       HazelcastCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'com.hazelcast.spring.cache.HazelcastCacheManager' (OnClassCondition)
    
       HazelcastJpaDependencyAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)
    
       HibernateJpaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.persistence.EntityManager' (OnClassCondition)
    
       HttpEncodingAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.filter.CharacterEncodingFilter' (OnClassCondition)
    
       HttpHandlerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.http.server.reactive.HttpHandler' (OnClassCondition)
    
       HttpMessageConvertersAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.http.converter.HttpMessageConverter' (OnClassCondition)
    
       HypermediaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.hateoas.Resource' (OnClassCondition)
    
       InfinispanCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.infinispan.spring.provider.SpringEmbeddedCacheManager' (OnClassCondition)
    
       InfluxDbAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.influxdb.InfluxDB' (OnClassCondition)
    
       IntegrationAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition)
    
       JCacheCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'javax.cache.Caching', 'org.springframework.cache.jcache.JCacheCacheManager' (OnClassCondition)
    
       JacksonAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition)
    
       JdbcRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.jdbc.repository.config.JdbcConfiguration' (OnClassCondition)
    
       JdbcTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)
    
       JerseyAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.ServletRegistration' (OnClassCondition)
    
       JestAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'io.searchbox.client.JestClient' (OnClassCondition)
    
       JmsAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.Message' (OnClassCondition)
    
       JndiConnectionFactoryAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)
    
       JndiDataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
    
       JooqAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition)
    
       JpaRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition)
    
       JsonbAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition)
    
       JtaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition)
    
       KafkaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition)
    
       LdapAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition)
    
       LdapRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)
    
       LiquibaseAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition)
    
       MailSenderAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.mail.internet.MimeMessage' (OnClassCondition)
    
       MailSenderValidatorAutoConfiguration:
          Did not match:
             - @ConditionalOnSingleCandidate did not find required type 'org.springframework.mail.javamail.JavaMailSenderImpl' (OnBeanCondition)
    
       MessageSourceAutoConfiguration:
          Did not match:
             - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition)
    
       MongoAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       MongoDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition)
    
       MongoReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       MultipartAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.MultipartConfigElement' (OnClassCondition)
    
       MustacheAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition)
    
       Neo4jDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.neo4j.ogm.session.SessionFactory' (OnClassCondition)
    
       Neo4jRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.neo4j.ogm.session.Neo4jSession' (OnClassCondition)
    
       OAuth2ClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition)
    
       OAuth2ResourceServerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.jwt.JwtDecoder' (OnClassCondition)
    
       PersistenceExceptionTranslationAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition)
    
       ProjectInfoAutoConfiguration#gitProperties:
          Did not match:
             - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition)
    
       QuartzAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition)
    
       RabbitAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.rabbitmq.client.Channel' (OnClassCondition)
    
       ReactiveOAuth2ClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       ReactiveOAuth2ResourceServerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity' (OnClassCondition)
    
       ReactiveSecurityAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       ReactiveUserDetailsServiceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition)
    
       ReactiveWebServerFactoryAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.http.ReactiveHttpInputMessage' (OnClassCondition)
    
       ReactorCoreAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       RedisAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition)
    
       RedisCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition)
    
       RedisReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       RedisRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition)
    
       RepositoryRestMvcAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition)
    
       RestClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClient' (OnClassCondition)
    
       RestTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.client.RestTemplate' (OnClassCondition)
    
       SecurityAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition)
    
       SecurityFilterAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition)
    
       SecurityRequestMatcherProviderAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.web.util.matcher.RequestMatcher' (OnClassCondition)
    
       SendGridAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition)
    
       ServletWebServerFactoryAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.ServletRequest' (OnClassCondition)
    
       SessionAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition)
    
       SolrAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition)
    
       SolrRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.SolrClient' (OnClassCondition)
    
       SpringDataWebAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition)
    
       TaskSchedulingAutoConfiguration#taskScheduler:
          Did not match:
             - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition)
    
       ThymeleafAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.thymeleaf.spring5.SpringTemplateEngine' (OnClassCondition)
    
       TransactionAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)
    
       UserDetailsServiceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition)
    
       ValidationAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.validation.executable.ExecutableValidator' (OnClassCondition)
    
       WebClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition)
    
       WebFluxAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)
    
       WebMvcAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition)
    
       WebServiceTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.oxm.Marshaller' (OnClassCondition)
    
       WebServicesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition)
    
       WebSocketMessagingAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition)
    
       WebSocketReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition)
    
       WebSocketServletAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition)
    
       XADataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager' (OnClassCondition)
    
    
    Exclusions:
    -----------
    
        None
    
    
    Unconditional classes:
    ----------------------
    
        org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration
    
        org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
    
        org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration
    
    
    
    2020-09-08 10:10:43.074 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type String
    2020-09-08 10:10:43.077 {main} INFO  com.drawnblue.netty.ServiceApplication - Started ServiceApplication in 0.784 seconds (JVM running for 1.405)
    2020-09-08 10:10:43.080 {main} DEBUG i.n.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
    2020-09-08 10:10:43.082 {main} DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 8
    2020-09-08 10:10:43.093 {main} DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
    2020-09-08 10:10:43.093 {main} DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
    2020-09-08 10:10:43.097 {main} DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
    2020-09-08 10:10:43.097 {main} DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
    2020-09-08 10:10:43.099 {main} DEBUG io.netty.util.internal.PlatformDependent - Platform: Windows
    2020-09-08 10:10:43.101 {main} DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
    2020-09-08 10:10:43.101 {main} DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 8
    2020-09-08 10:10:43.103 {main} DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
    2020-09-08 10:10:43.103 {main} DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
    2020-09-08 10:10:43.104 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
    2020-09-08 10:10:43.104 {main} DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: available
    2020-09-08 10:10:43.105 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
    2020-09-08 10:10:43.105 {main} DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
    2020-09-08 10:10:43.105 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
    2020-09-08 10:10:43.105 {main} DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
    2020-09-08 10:10:43.106 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: C:UsersADMINI~1AppDataLocalTemp (java.io.tmpdir)
    2020-09-08 10:10:43.106 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
    2020-09-08 10:10:43.107 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: 3795845120 bytes
    2020-09-08 10:10:43.107 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
    2020-09-08 10:10:43.108 {main} DEBUG io.netty.util.internal.CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
    2020-09-08 10:10:43.108 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
    2020-09-08 10:10:43.109 {main} DEBUG io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
    2020-09-08 10:10:43.186 {main} INFO  com.drawnblue.netty.handler.TcpService - netty 服务器监听端口:8889
    2020-09-08 10:10:43.191 {main} DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 18736 (auto-detected)
    2020-09-08 10:10:43.192 {main} DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
    2020-09-08 10:10:43.192 {main} DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
    2020-09-08 10:10:43.433 {main} DEBUG io.netty.util.NetUtil - Loopback interface: lo (Software Loopback Interface 1, 127.0.0.1)
    2020-09-08 10:10:43.433 {main} DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file procsys
    etcoresomaxconn. Default: 200
    2020-09-08 10:10:43.548 {main} DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: e0:d5:5e:ff:fe:5f:86:6e (auto-detected)
    2020-09-08 10:10:43.556 {main} DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
    2020-09-08 10:10:43.556 {main} DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 8
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 8
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
    2020-09-08 10:10:43.617 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
    2020-09-08 10:10:43.623 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
    2020-09-08 10:10:43.623 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
    2020-09-08 10:10:43.623 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
    /127.0.0.1:8800上线了
    2020-09-08 10:10:52.166 {nioEventLoopGroup-3-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
    2020-09-08 10:10:52.166 {nioEventLoopGroup-3-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
    2020-09-08 10:10:52.166 {nioEventLoopGroup-3-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
    2020-09-08 10:10:52.166 {nioEventLoopGroup-3-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
    2020-09-08 10:10:52.166 {nioEventLoopGroup-3-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.delayedQueue.ratio: 8
    2020-09-08 10:10:52.171 {nioEventLoopGroup-3-1} DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
    2020-09-08 10:10:52.171 {nioEventLoopGroup-3-1} DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
    2020-09-08 10:10:52.171 {nioEventLoopGroup-3-1} DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@4153e4dd
    2020-09-08 10:10:52.177 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码
    2020-09-08 10:10:52.182 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码结束!message=Message(head=Head(crcCode=1, length=76, sessionId=23, type=3, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    pipeline is equaltrue   true
    HeartBeatRespHandler receive msg:Message(head=Head(crcCode=1, length=76, sessionId=23, type=3, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    Message(head=Head(crcCode=1, length=76, sessionId=23, type=3, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    /127.0.0.1:8800
    /127.0.0.1:8800    true
    2020-09-08 10:10:52.184 {nioEventLoopGroup-3-1} INFO  com.drawnblue.netty.handler.MessageHandler - message 发送出去~~~~~~Message(head=Head(crcCode=1, length=76, sessionId=23, type=4, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    2020-09-08 10:10:52.184 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码 msg=Message(head=Head(crcCode=1, length=76, sessionId=23, type=4, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    2020-09-08 10:10:52.184 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码调用结束
    2020-09-08 10:10:52.192 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码
    2020-09-08 10:10:52.193 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码结束!message=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=5, priority=1, attachment={}), body=Body(payload=null))
    pipeline is equaltrue   true
    HeartBeatRespHandler receive msg:Message(head=Head(crcCode=44015, length=18, sessionId=0, type=5, priority=1, attachment={}), body=Body(payload=null))
    2020-09-08 10:10:52.193 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码 msg=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment=null), body=Body(payload=null))
    2020-09-08 10:10:52.193 {nioEventLoopGroup-3-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码调用结束
    View Code

    客户端

    D:	opbandSoftjavajdk1.8injava.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=62593 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:G:softIDEAIntelliJ IDEA 2018.2.5libidea_rt.jar=62594:G:softIDEAIntelliJ IDEA 2018.2.5in" -Dfile.encoding=UTF-8 -classpath D:	opbandSoftjavajdk1.8jrelibcharsets.jar;D:	opbandSoftjavajdk1.8jrelibdeploy.jar;D:	opbandSoftjavajdk1.8jrelibextaccess-bridge-64.jar;D:	opbandSoftjavajdk1.8jrelibextcldrdata.jar;D:	opbandSoftjavajdk1.8jrelibextdnsns.jar;D:	opbandSoftjavajdk1.8jrelibextjaccess.jar;D:	opbandSoftjavajdk1.8jrelibextjfxrt.jar;D:	opbandSoftjavajdk1.8jrelibextlocaledata.jar;D:	opbandSoftjavajdk1.8jrelibext
    ashorn.jar;D:	opbandSoftjavajdk1.8jrelibextsunec.jar;D:	opbandSoftjavajdk1.8jrelibextsunjce_provider.jar;D:	opbandSoftjavajdk1.8jrelibextsunmscapi.jar;D:	opbandSoftjavajdk1.8jrelibextsunpkcs11.jar;D:	opbandSoftjavajdk1.8jrelibextzipfs.jar;D:	opbandSoftjavajdk1.8jrelibjavaws.jar;D:	opbandSoftjavajdk1.8jrelibjce.jar;D:	opbandSoftjavajdk1.8jrelibjfr.jar;D:	opbandSoftjavajdk1.8jrelibjfxswt.jar;D:	opbandSoftjavajdk1.8jrelibjsse.jar;D:	opbandSoftjavajdk1.8jrelibmanagement-agent.jar;D:	opbandSoftjavajdk1.8jrelibplugin.jar;D:	opbandSoftjavajdk1.8jrelib
    esources.jar;D:	opbandSoftjavajdk1.8jrelib
    t.jar;G:drawnblue
    etty-component
    ettyClient	argetclasses;E:localRepositoryorgspringframeworkootspring-boot-starter2.1.6.RELEASEspring-boot-starter-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot2.1.6.RELEASEspring-boot-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkspring-context5.1.8.RELEASEspring-context-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot-autoconfigure2.1.6.RELEASEspring-boot-autoconfigure-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot-starter-logging2.1.6.RELEASEspring-boot-starter-logging-2.1.6.RELEASE.jar;E:localRepositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;E:localRepositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;E:localRepositoryorgapachelogginglog4jlog4j-to-slf4j2.11.2log4j-to-slf4j-2.11.2.jar;E:localRepositoryorgapachelogginglog4jlog4j-api2.11.2log4j-api-2.11.2.jar;E:localRepositoryorgslf4jjul-to-slf4j1.7.26jul-to-slf4j-1.7.26.jar;E:localRepositoryjavaxannotationjavax.annotation-api1.3.2javax.annotation-api-1.3.2.jar;E:localRepositoryorgspringframeworkspring-core5.1.8.RELEASEspring-core-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-jcl5.1.8.RELEASEspring-jcl-5.1.8.RELEASE.jar;E:localRepositoryorgyamlsnakeyaml1.23snakeyaml-1.23.jar;E:localRepositoryorgspringframeworkootspring-boot-starter-web2.1.6.RELEASEspring-boot-starter-web-2.1.6.RELEASE.jar;E:localRepositoryorgspringframeworkootspring-boot-starter-json2.1.6.RELEASEspring-boot-starter-json-2.1.6.RELEASE.jar;E:localRepositorycomfasterxmljacksoncorejackson-databind2.9.9jackson-databind-2.9.9.jar;E:localRepositorycomfasterxmljacksoncorejackson-annotations2.9.0jackson-annotations-2.9.0.jar;E:localRepositorycomfasterxmljacksoncorejackson-core2.9.9jackson-core-2.9.9.jar;E:localRepositorycomfasterxmljacksondatatypejackson-datatype-jdk82.9.9jackson-datatype-jdk8-2.9.9.jar;E:localRepositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.9.9jackson-datatype-jsr310-2.9.9.jar;E:localRepositorycomfasterxmljacksonmodulejackson-module-parameter-names2.9.9jackson-module-parameter-names-2.9.9.jar;E:localRepositoryorgspringframeworkootspring-boot-starter-tomcat2.1.6.RELEASEspring-boot-starter-tomcat-2.1.6.RELEASE.jar;E:localRepositoryorgapache	omcatembed	omcat-embed-core9.0.21	omcat-embed-core-9.0.21.jar;E:localRepositoryorgapache	omcatembed	omcat-embed-el9.0.21	omcat-embed-el-9.0.21.jar;E:localRepositoryorgapache	omcatembed	omcat-embed-websocket9.0.21	omcat-embed-websocket-9.0.21.jar;E:localRepositoryorghibernatevalidatorhibernate-validator6.0.17.Finalhibernate-validator-6.0.17.Final.jar;E:localRepositoryjavaxvalidationvalidation-api2.0.1.Finalvalidation-api-2.0.1.Final.jar;E:localRepositoryorgjbossloggingjboss-logging3.3.2.Finaljboss-logging-3.3.2.Final.jar;E:localRepositorycomfasterxmlclassmate1.4.0classmate-1.4.0.jar;E:localRepositoryorgspringframeworkspring-web5.1.8.RELEASEspring-web-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-beans5.1.8.RELEASEspring-beans-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-webmvc5.1.8.RELEASEspring-webmvc-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-aop5.1.8.RELEASEspring-aop-5.1.8.RELEASE.jar;E:localRepositoryorgspringframeworkspring-expression5.1.8.RELEASEspring-expression-5.1.8.RELEASE.jar;E:localRepositoryio
    etty
    etty-all4.1.50.Final
    etty-all-4.1.50.Final.jar;G:drawnblue
    etty-component
    etty-common	argetclasses;E:localRepositorycnhutoolhutool-all5.0.5hutool-all-5.0.5.jar;E:localRepositorymysqlmysql-connector-java8.0.16mysql-connector-java-8.0.16.jar;E:localRepositoryorgslf4jslf4j-api1.7.26slf4j-api-1.7.26.jar com.drawnblue.netty.ClientApplication
    10:10:50,292 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/G:/drawnblue/netty-component/nettyClient/target/classes/conf/logback.xml] 
    10:10:50,293 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 minutes
    10:10:50,296 |-WARN in Logger[org.springframework.core.env.PropertySourcesPropertyResolver] - No appenders present in context [default] for logger [org.springframework.core.env.PropertySourcesPropertyResolver].
    10:10:50,297 |-INFO in ch.qos.logback.classic.joran.action.ContextNameAction - Setting logger context name as [elk]
    10:10:50,297 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
    10:10:50,298 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
    10:10:50,315 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.apache.ibatis] to TRACE
    10:10:50,315 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@7a4ccb53 - Propagating TRACE level on Logger[com.apache.ibatis] onto the JUL framework
    10:10:50,315 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.Connection] to DEBUG
    10:10:50,315 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@7a4ccb53 - Propagating DEBUG level on Logger[java.sql.Connection] onto the JUL framework
    10:10:50,315 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.Statement] to DEBUG
    10:10:50,315 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@7a4ccb53 - Propagating DEBUG level on Logger[java.sql.Statement] onto the JUL framework
    10:10:50,315 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [java.sql.PreparedStatement] to DEBUG
    10:10:50,315 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@7a4ccb53 - Propagating DEBUG level on Logger[java.sql.PreparedStatement] onto the JUL framework
    10:10:50,316 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
    10:10:50,316 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
    10:10:50,316 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
    10:10:50,316 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@4df50bcc - Registering current configuration as safe fallback point
    2020-09-08 10:10:50.322 {main} DEBUG o.s.b.c.l.ClasspathLoggingApplicationListener - Application started with classpath: [file:/D:/topbandSoft/java/jdk1.8/jre/lib/charsets.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/deploy.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/access-bridge-64.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/cldrdata.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/dnsns.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/jaccess.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/jfxrt.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/localedata.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/nashorn.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunec.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunjce_provider.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunmscapi.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/sunpkcs11.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/ext/zipfs.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/javaws.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jce.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jfr.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jfxswt.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/jsse.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/management-agent.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/plugin.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/resources.jar, file:/D:/topbandSoft/java/jdk1.8/jre/lib/rt.jar, file:/G:/drawnblue/netty-component/nettyClient/target/classes/, file:/E:/localRepository/org/springframework/boot/spring-boot-starter/2.1.6.RELEASE/spring-boot-starter-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot/2.1.6.RELEASE/spring-boot-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-context/5.1.8.RELEASE/spring-context-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-autoconfigure/2.1.6.RELEASE/spring-boot-autoconfigure-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-starter-logging/2.1.6.RELEASE/spring-boot-starter-logging-2.1.6.RELEASE.jar, file:/E:/localRepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, file:/E:/localRepository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, file:/E:/localRepository/org/apache/logging/log4j/log4j-to-slf4j/2.11.2/log4j-to-slf4j-2.11.2.jar, file:/E:/localRepository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar, file:/E:/localRepository/org/slf4j/jul-to-slf4j/1.7.26/jul-to-slf4j-1.7.26.jar, file:/E:/localRepository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar, file:/E:/localRepository/org/springframework/spring-core/5.1.8.RELEASE/spring-core-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-jcl/5.1.8.RELEASE/spring-jcl-5.1.8.RELEASE.jar, file:/E:/localRepository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-starter-web/2.1.6.RELEASE/spring-boot-starter-web-2.1.6.RELEASE.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-starter-json/2.1.6.RELEASE/spring-boot-starter-json-2.1.6.RELEASE.jar, file:/E:/localRepository/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar, file:/E:/localRepository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar, file:/E:/localRepository/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar, file:/E:/localRepository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar, file:/E:/localRepository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar, file:/E:/localRepository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.9/jackson-module-parameter-names-2.9.9.jar, file:/E:/localRepository/org/springframework/boot/spring-boot-starter-tomcat/2.1.6.RELEASE/spring-boot-starter-tomcat-2.1.6.RELEASE.jar, file:/E:/localRepository/org/apache/tomcat/embed/tomcat-embed-core/9.0.21/tomcat-embed-core-9.0.21.jar, file:/E:/localRepository/org/apache/tomcat/embed/tomcat-embed-el/9.0.21/tomcat-embed-el-9.0.21.jar, file:/E:/localRepository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.21/tomcat-embed-websocket-9.0.21.jar, file:/E:/localRepository/org/hibernate/validator/hibernate-validator/6.0.17.Final/hibernate-validator-6.0.17.Final.jar, file:/E:/localRepository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar, file:/E:/localRepository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar, file:/E:/localRepository/com/fasterxml/classmate/1.4.0/classmate-1.4.0.jar, file:/E:/localRepository/org/springframework/spring-web/5.1.8.RELEASE/spring-web-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-beans/5.1.8.RELEASE/spring-beans-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-webmvc/5.1.8.RELEASE/spring-webmvc-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-aop/5.1.8.RELEASE/spring-aop-5.1.8.RELEASE.jar, file:/E:/localRepository/org/springframework/spring-expression/5.1.8.RELEASE/spring-expression-5.1.8.RELEASE.jar, file:/E:/localRepository/io/netty/netty-all/4.1.50.Final/netty-all-4.1.50.Final.jar, file:/G:/drawnblue/netty-component/netty-common/target/classes/, file:/E:/localRepository/cn/hutool/hutool-all/5.0.5/hutool-all-5.0.5.jar, file:/E:/localRepository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar, file:/E:/localRepository/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar, file:/G:/soft/IDEA/IntelliJ%20IDEA%202018.2.5/lib/idea_rt.jar]
    
      .   ____          _            __ _ _
     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.6.RELEASE)
    
    2020-09-08 10:10:50.434 {main} INFO  com.drawnblue.netty.ClientApplication - Starting ClientApplication on LICY with PID 19160 (G:drawnblue
    etty-component
    ettyClient	argetclasses started by Administrator in G:drawnblue
    etty-component)
    2020-09-08 10:10:50.435 {main} DEBUG com.drawnblue.netty.ClientApplication - Running with Spring Boot v2.1.6.RELEASE, Spring v5.1.8.RELEASE
    2020-09-08 10:10:50.435 {main} INFO  com.drawnblue.netty.ClientApplication - No active profile set, falling back to default profiles: default
    2020-09-08 10:10:50.435 {main} DEBUG org.springframework.boot.SpringApplication - Loading source class com.drawnblue.netty.ClientApplication
    2020-09-08 10:10:50.611 {main} DEBUG o.s.b.context.config.ConfigFileApplicationListener - Loaded config file 'file:/G:/drawnblue/netty-component/nettyClient/target/classes/application.properties' (classpath:/application.properties)
    2020-09-08 10:10:50.612 {main} DEBUG o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@10e92f8f
    2020-09-08 10:10:50.626 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'
    2020-09-08 10:10:50.637 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory'
    2020-09-08 10:10:50.698 {main} DEBUG o.s.c.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [G:drawnblue
    etty-component
    ettyClient	argetclassescomdrawnblue
    ettyclientTCPClient.class]
    2020-09-08 10:10:50.828 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.application.admin.enabled' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:50.872 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.condition.BeanTypeRegistry'
    2020-09-08 10:10:50.945 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.application.admin.enabled' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:51.051 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'propertySourcesPlaceholderConfigurer'
    2020-09-08 10:10:51.056 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor'
    2020-09-08 10:10:51.056 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata'
    2020-09-08 10:10:51.057 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'preserveErrorControllerTargetClassPostProcessor'
    2020-09-08 10:10:51.058 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory'
    2020-09-08 10:10:51.061 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor'
    2020-09-08 10:10:51.062 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor'
    2020-09-08 10:10:51.063 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor'
    2020-09-08 10:10:51.065 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'methodValidationPostProcessor'
    2020-09-08 10:10:51.075 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'methodValidationPostProcessor' via factory method to bean named 'environment'
    2020-09-08 10:10:51.082 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'webServerFactoryCustomizerBeanPostProcessor'
    2020-09-08 10:10:51.083 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'errorPageRegistrarBeanPostProcessor'
    2020-09-08 10:10:51.086 {main} DEBUG o.s.ui.context.support.UiApplicationContextUtils - Unable to locate ThemeSource with name 'themeSource': using default [org.springframework.ui.context.support.ResourceBundleThemeSource@293a5f75]
    2020-09-08 10:10:51.086 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'tomcatServletWebServerFactory'
    2020-09-08 10:10:51.086 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat'
    2020-09-08 10:10:51.112 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'websocketServletWebServerCustomizer'
    2020-09-08 10:10:51.112 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration'
    2020-09-08 10:10:51.114 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'servletWebServerFactoryCustomizer'
    2020-09-08 10:10:51.115 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration'
    2020-09-08 10:10:51.117 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'server-org.springframework.boot.autoconfigure.web.ServerProperties'
    2020-09-08 10:10:51.133 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'servletWebServerFactoryCustomizer' via factory method to bean named 'server-org.springframework.boot.autoconfigure.web.ServerProperties'
    2020-09-08 10:10:51.135 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'tomcatServletWebServerFactoryCustomizer'
    2020-09-08 10:10:51.136 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'tomcatServletWebServerFactoryCustomizer' via factory method to bean named 'server-org.springframework.boot.autoconfigure.web.ServerProperties'
    2020-09-08 10:10:51.136 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'tomcatWebServerFactoryCustomizer'
    2020-09-08 10:10:51.137 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration'
    2020-09-08 10:10:51.138 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'tomcatWebServerFactoryCustomizer' via factory method to bean named 'environment'
    2020-09-08 10:10:51.139 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'tomcatWebServerFactoryCustomizer' via factory method to bean named 'server-org.springframework.boot.autoconfigure.web.ServerProperties'
    2020-09-08 10:10:51.141 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'localeCharsetMappingsCustomizer'
    2020-09-08 10:10:51.141 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration'
    2020-09-08 10:10:51.141 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration$$EnhancerBySpringCGLIB$$63ebfa59] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.142 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.http-org.springframework.boot.autoconfigure.http.HttpProperties'
    2020-09-08 10:10:51.143 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration' via constructor to bean named 'spring.http-org.springframework.boot.autoconfigure.http.HttpProperties'
    2020-09-08 10:10:51.164 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'errorPageCustomizer'
    2020-09-08 10:10:51.165 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration'
    2020-09-08 10:10:51.165 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$$EnhancerBySpringCGLIB$$bc43493c] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.166 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'dispatcherServletRegistration'
    2020-09-08 10:10:51.166 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration'
    2020-09-08 10:10:51.167 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration$$EnhancerBySpringCGLIB$$429e6827] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.168 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties'
    2020-09-08 10:10:51.170 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration' via constructor to bean named 'spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties'
    2020-09-08 10:10:51.171 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'multipartConfigElement'
    2020-09-08 10:10:51.171 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration'
    2020-09-08 10:10:51.171 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration$$EnhancerBySpringCGLIB$$d2dc8266] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.172 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties'
    2020-09-08 10:10:51.176 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration' via constructor to bean named 'spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties'
    2020-09-08 10:10:51.181 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'dispatcherServlet'
    2020-09-08 10:10:51.181 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration'
    2020-09-08 10:10:51.182 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration$$EnhancerBySpringCGLIB$$e096d380] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.182 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration' via constructor to bean named 'spring.http-org.springframework.boot.autoconfigure.http.HttpProperties'
    2020-09-08 10:10:51.188 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration' via constructor to bean named 'spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties'
    2020-09-08 10:10:51.203 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'dispatcherServletRegistration' via factory method to bean named 'dispatcherServlet'
    2020-09-08 10:10:51.207 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration' via constructor to bean named 'server-org.springframework.boot.autoconfigure.web.ServerProperties'
    2020-09-08 10:10:51.207 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration' via constructor to bean named 'dispatcherServletRegistration'
    2020-09-08 10:10:51.208 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'conventionErrorViewResolver'
    2020-09-08 10:10:51.208 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration'
    2020-09-08 10:10:51.208 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration$$EnhancerBySpringCGLIB$$d0d81ddc] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.209 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties'
    2020-09-08 10:10:51.211 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration' via constructor to bean named 'org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@10e92f8f'
    2020-09-08 10:10:51.211 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration' via constructor to bean named 'spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties'
    2020-09-08 10:10:51.290 {main} DEBUG o.s.b.w.e.tomcat.TomcatServletWebServerFactory - Code archive: E:localRepositoryorgspringframeworkootspring-boot2.1.6.RELEASEspring-boot-2.1.6.RELEASE.jar
    2020-09-08 10:10:51.290 {main} DEBUG o.s.b.w.e.tomcat.TomcatServletWebServerFactory - Code archive: E:localRepositoryorgspringframeworkootspring-boot2.1.6.RELEASEspring-boot-2.1.6.RELEASE.jar
    2020-09-08 10:10:51.291 {main} DEBUG o.s.b.w.e.tomcat.TomcatServletWebServerFactory - None of the document roots [src/main/webapp, public, static] point to a directory and will be ignored.
    2020-09-08 10:10:51.315 {main} INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8003 (http)
    2020-09-08 10:10:51.327 {main} INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8003"]
    2020-09-08 10:10:51.335 {main} INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
    2020-09-08 10:10:51.335 {main} INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.21]
    2020-09-08 10:10:51.429 {main} INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
    2020-09-08 10:10:51.429 {main} DEBUG org.springframework.web.context.ContextLoader - Published root WebApplicationContext as ServletContext attribute with name [org.springframework.web.context.WebApplicationContext.ROOT]
    2020-09-08 10:10:51.429 {main} INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 817 ms
    2020-09-08 10:10:51.433 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'requestContextFilter'
    2020-09-08 10:10:51.435 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'hiddenHttpMethodFilter'
    2020-09-08 10:10:51.435 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration'
    2020-09-08 10:10:51.439 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'formContentFilter'
    2020-09-08 10:10:51.442 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'characterEncodingFilter'
    2020-09-08 10:10:51.449 {main} DEBUG o.s.b.web.servlet.ServletContextInitializerBeans - Mapping filters: characterEncodingFilter urls=[/*], hiddenHttpMethodFilter urls=[/*], formContentFilter urls=[/*], requestContextFilter urls=[/*]
    2020-09-08 10:10:51.449 {main} DEBUG o.s.b.web.servlet.ServletContextInitializerBeans - Mapping servlets: dispatcherServlet urls=[/]
    2020-09-08 10:10:51.464 {main} DEBUG o.s.b.w.servlet.filter.OrderedRequestContextFilter - Filter 'requestContextFilter' configured for use
    2020-09-08 10:10:51.465 {main} DEBUG o.s.b.w.s.filter.OrderedHiddenHttpMethodFilter - Filter 'hiddenHttpMethodFilter' configured for use
    2020-09-08 10:10:51.465 {main} DEBUG o.s.b.w.s.filter.OrderedCharacterEncodingFilter - Filter 'characterEncodingFilter' configured for use
    2020-09-08 10:10:51.465 {main} DEBUG o.s.b.web.servlet.filter.OrderedFormContentFilter - Filter 'formContentFilter' configured for use
    2020-09-08 10:10:51.471 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'clientApplication'
    2020-09-08 10:10:51.472 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'TCPClient'
    2020-09-08 10:10:51.475 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.host' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:51.475 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.host' in PropertySource 'environmentProperties' with value of type String
    2020-09-08 10:10:51.476 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.port' in PropertySource 'configurationProperties' with value of type String
    2020-09-08 10:10:51.476 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'netty.port' in PropertySource 'environmentProperties' with value of type String
    2020-09-08 10:10:51.477 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.AutoConfigurationPackages'
    2020-09-08 10:10:51.479 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration'
    2020-09-08 10:10:51.480 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration'
    2020-09-08 10:10:51.480 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration'
    2020-09-08 10:10:51.480 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration'
    2020-09-08 10:10:51.480 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration$$EnhancerBySpringCGLIB$$1c36dc8d] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.481 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties'
    2020-09-08 10:10:51.482 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration' via constructor to bean named 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties'
    2020-09-08 10:10:51.483 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'taskExecutorBuilder'
    2020-09-08 10:10:51.487 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration'
    2020-09-08 10:10:51.487 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'defaultValidator'
    2020-09-08 10:10:51.489 {main} DEBUG o.h.v.i.engine.resolver.TraversableResolvers - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.
    2020-09-08 10:10:51.490 {main} DEBUG o.h.v.m.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
    2020-09-08 10:10:51.493 {main} DEBUG o.h.v.i.engine.resolver.TraversableResolvers - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.
    2020-09-08 10:10:51.494 {main} DEBUG o.h.validator.internal.engine.ConfigurationImpl - Setting custom MessageInterpolator of type org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator
    2020-09-08 10:10:51.494 {main} DEBUG o.h.validator.internal.engine.ConfigurationImpl - Setting custom ConstraintValidatorFactory of type org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory
    2020-09-08 10:10:51.495 {main} DEBUG o.h.validator.internal.engine.ConfigurationImpl - Setting custom ParameterNameProvider of type org.springframework.validation.beanvalidation.LocalValidatorFactoryBean$1
    2020-09-08 10:10:51.495 {main} DEBUG o.h.v.internal.xml.config.ValidationXmlParser - Trying to load META-INF/validation.xml for XML based Validator configuration.
    2020-09-08 10:10:51.495 {main} DEBUG o.h.v.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via user class loader
    2020-09-08 10:10:51.496 {main} DEBUG o.h.v.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via TCCL
    2020-09-08 10:10:51.496 {main} DEBUG o.h.v.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via Hibernate Validator's class loader
    2020-09-08 10:10:51.496 {main} DEBUG o.h.v.internal.xml.config.ValidationXmlParser - No META-INF/validation.xml found. Using annotation based configuration only.
    2020-09-08 10:10:51.500 {main} DEBUG o.h.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator as ValidatorFactory-scoped message interpolator.
    2020-09-08 10:10:51.500 {main} DEBUG o.h.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.resolver.TraverseAllTraversableResolver as ValidatorFactory-scoped traversable resolver.
    2020-09-08 10:10:51.500 {main} DEBUG o.h.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
    2020-09-08 10:10:51.500 {main} DEBUG o.h.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
    2020-09-08 10:10:51.500 {main} DEBUG o.h.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.
    2020-09-08 10:10:51.501 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration'
    2020-09-08 10:10:51.502 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'error'
    2020-09-08 10:10:51.504 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'beanNameViewResolver'
    2020-09-08 10:10:51.506 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'errorAttributes'
    2020-09-08 10:10:51.507 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'basicErrorController'
    2020-09-08 10:10:51.507 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'basicErrorController' via factory method to bean named 'errorAttributes'
    2020-09-08 10:10:51.512 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter$FaviconConfiguration'
    2020-09-08 10:10:51.512 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter$FaviconConfiguration$$EnhancerBySpringCGLIB$$59c56762] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.513 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter$FaviconConfiguration' via constructor to bean named 'spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties'
    2020-09-08 10:10:51.513 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'faviconHandlerMapping'
    2020-09-08 10:10:51.516 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'faviconRequestHandler'
    2020-09-08 10:10:51.525 {main} DEBUG o.s.web.servlet.handler.SimpleUrlHandlerMapping - Patterns [/**/favicon.ico] in 'faviconHandlerMapping'
    2020-09-08 10:10:51.525 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration'
    2020-09-08 10:10:51.526 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$fb849437] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.527 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration' via constructor to bean named 'org.springframework.beans.factory.support.DefaultListableBeanFactory@7b02881e'
    2020-09-08 10:10:51.536 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter'
    2020-09-08 10:10:51.536 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter$$EnhancerBySpringCGLIB$$9d885f1c] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.537 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter' via constructor to bean named 'spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties'
    2020-09-08 10:10:51.537 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter' via constructor to bean named 'spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties'
    2020-09-08 10:10:51.537 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter' via constructor to bean named 'org.springframework.beans.factory.support.DefaultListableBeanFactory@7b02881e'
    2020-09-08 10:10:51.540 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'requestMappingHandlerAdapter'
    2020-09-08 10:10:51.549 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcContentNegotiationManager'
    2020-09-08 10:10:51.552 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'messageConverters'
    2020-09-08 10:10:51.552 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration'
    2020-09-08 10:10:51.553 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$aacb0f4b] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.555 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'stringHttpMessageConverter'
    2020-09-08 10:10:51.555 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration'
    2020-09-08 10:10:51.555 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration$$EnhancerBySpringCGLIB$$ddd8d5eb] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.556 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration' via constructor to bean named 'spring.http-org.springframework.boot.autoconfigure.http.HttpProperties'
    2020-09-08 10:10:51.563 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mappingJackson2HttpMessageConverter'
    2020-09-08 10:10:51.563 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration'
    2020-09-08 10:10:51.564 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'jacksonObjectMapper'
    2020-09-08 10:10:51.565 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration'
    2020-09-08 10:10:51.565 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'jacksonObjectMapperBuilder'
    2020-09-08 10:10:51.566 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration'
    2020-09-08 10:10:51.566 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration$$EnhancerBySpringCGLIB$$9e778561] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.566 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration' via constructor to bean named 'org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@10e92f8f'
    2020-09-08 10:10:51.567 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'standardJacksonObjectMapperBuilderCustomizer'
    2020-09-08 10:10:51.567 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration'
    2020-09-08 10:10:51.568 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties'
    2020-09-08 10:10:51.568 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'standardJacksonObjectMapperBuilderCustomizer' via factory method to bean named 'org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@10e92f8f'
    2020-09-08 10:10:51.568 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'standardJacksonObjectMapperBuilderCustomizer' via factory method to bean named 'spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties'
    2020-09-08 10:10:51.570 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'jacksonObjectMapperBuilder' via factory method to bean named 'standardJacksonObjectMapperBuilderCustomizer'
    2020-09-08 10:10:51.573 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'parameterNamesModule'
    2020-09-08 10:10:51.573 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration'
    2020-09-08 10:10:51.577 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'jsonComponentModule'
    2020-09-08 10:10:51.577 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration'
    2020-09-08 10:10:51.584 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'jacksonObjectMapper' via factory method to bean named 'jacksonObjectMapperBuilder'
    2020-09-08 10:10:51.603 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'mappingJackson2HttpMessageConverter' via factory method to bean named 'jacksonObjectMapper'
    2020-09-08 10:10:51.611 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcConversionService'
    2020-09-08 10:10:51.615 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcValidator'
    2020-09-08 10:10:51.620 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'applicationTaskExecutor'
    2020-09-08 10:10:51.620 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'applicationTaskExecutor' via factory method to bean named 'taskExecutorBuilder'
    2020-09-08 10:10:51.624 {main} INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
    2020-09-08 10:10:51.632 {main} DEBUG o.s.w.s.m.m.a.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
    2020-09-08 10:10:51.648 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'requestMappingHandlerMapping'
    2020-09-08 10:10:51.652 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcResourceUrlProvider'
    2020-09-08 10:10:51.696 {main} DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 2 mappings in 'requestMappingHandlerMapping'
    2020-09-08 10:10:51.697 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcPathMatcher'
    2020-09-08 10:10:51.697 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcUrlPathHelper'
    2020-09-08 10:10:51.698 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'viewControllerHandlerMapping'
    2020-09-08 10:10:51.698 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'beanNameHandlerMapping'
    2020-09-08 10:10:51.700 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'resourceHandlerMapping'
    2020-09-08 10:10:51.704 {main} DEBUG o.s.web.servlet.handler.SimpleUrlHandlerMapping - Patterns [/webjars/**, /**] in 'resourceHandlerMapping'
    2020-09-08 10:10:51.704 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'defaultServletHandlerMapping'
    2020-09-08 10:10:51.705 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcUriComponentsContributor'
    2020-09-08 10:10:51.707 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'httpRequestHandlerAdapter'
    2020-09-08 10:10:51.708 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'simpleControllerHandlerAdapter'
    2020-09-08 10:10:51.709 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'handlerExceptionResolver'
    2020-09-08 10:10:51.712 {main} DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 0 @ExceptionHandler, 1 ResponseBodyAdvice
    2020-09-08 10:10:51.714 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mvcViewResolver'
    2020-09-08 10:10:51.715 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'defaultViewResolver'
    2020-09-08 10:10:51.720 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'viewResolver'
    2020-09-08 10:10:51.720 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'viewResolver' via factory method to bean named 'org.springframework.beans.factory.support.DefaultListableBeanFactory@7b02881e'
    2020-09-08 10:10:51.722 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'welcomePageHandlerMapping'
    2020-09-08 10:10:51.722 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'welcomePageHandlerMapping' via factory method to bean named 'org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@10e92f8f'
    2020-09-08 10:10:51.727 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration'
    2020-09-08 10:10:51.729 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mbeanExporter'
    2020-09-08 10:10:51.729 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'objectNamingStrategy'
    2020-09-08 10:10:51.731 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'mbeanExporter' via factory method to bean named 'objectNamingStrategy'
    2020-09-08 10:10:51.734 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'mbeanServer'
    2020-09-08 10:10:51.736 {main} DEBUG org.springframework.jmx.support.JmxUtils - Found MBeanServer: com.sun.jmx.mbeanserver.JmxMBeanServer@7ba4f24f
    2020-09-08 10:10:51.740 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration'
    2020-09-08 10:10:51.740 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration$$EnhancerBySpringCGLIB$$2343e485] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.741 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration' via constructor to bean named 'environment'
    2020-09-08 10:10:51.741 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'springApplicationAdminRegistrar'
    2020-09-08 10:10:51.744 {main} DEBUG o.s.b.a.SpringApplicationAdminMXBeanRegistrar$SpringApplicationAdmin - Application Admin MBean registered with name 'org.springframework.boot:type=Admin,name=SpringApplication'
    2020-09-08 10:10:51.744 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration'
    2020-09-08 10:10:51.745 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration'
    2020-09-08 10:10:51.745 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration$LoggingCodecConfiguration'
    2020-09-08 10:10:51.745 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'loggingCodecCustomizer'
    2020-09-08 10:10:51.745 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'loggingCodecCustomizer' via factory method to bean named 'spring.http-org.springframework.boot.autoconfigure.http.HttpProperties'
    2020-09-08 10:10:51.747 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration$JacksonCodecConfiguration'
    2020-09-08 10:10:51.748 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'jacksonCodecCustomizer'
    2020-09-08 10:10:51.748 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'jacksonCodecCustomizer' via factory method to bean named 'jacksonObjectMapper'
    2020-09-08 10:10:51.749 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration'
    2020-09-08 10:10:51.750 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration'
    2020-09-08 10:10:51.750 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration$$EnhancerBySpringCGLIB$$cc9150d0] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.750 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties'
    2020-09-08 10:10:51.751 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration' via constructor to bean named 'spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties'
    2020-09-08 10:10:51.751 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'buildProperties'
    2020-09-08 10:10:51.757 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration'
    2020-09-08 10:10:51.758 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'taskSchedulerBuilder'
    2020-09-08 10:10:51.759 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties'
    2020-09-08 10:10:51.760 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'taskSchedulerBuilder' via factory method to bean named 'spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties'
    2020-09-08 10:10:51.762 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration'
    2020-09-08 10:10:51.763 {main} DEBUG o.s.core.LocalVariableTableParameterNameDiscoverer - Cannot find '.class' file for class [class org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration$$EnhancerBySpringCGLIB$$2bad3d38] - unable to determine constructor/method parameter names
    2020-09-08 10:10:51.763 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'restTemplateBuilder'
    2020-09-08 10:10:51.768 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration'
    2020-09-08 10:10:51.768 {main} DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'multipartResolver'
    2020-09-08 10:10:51.780 {main} DEBUG o.s.jmx.export.annotation.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
    2020-09-08 10:10:51.780 {main} DEBUG o.s.jmx.export.annotation.AnnotationMBeanExporter - Autodetecting user-defined JMX MBeans
    2020-09-08 10:10:51.800 {main} DEBUG o.s.b.a.l.ConditionEvaluationReportLoggingListener - 
    
    
    ============================
    CONDITIONS EVALUATION REPORT
    ============================
    
    
    Positive matches:
    -----------------
    
       CodecsAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.codec.CodecConfigurer' (OnClassCondition)
    
       CodecsAutoConfiguration.JacksonCodecConfiguration matched:
          - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition)
    
       CodecsAutoConfiguration.JacksonCodecConfiguration#jacksonCodecCustomizer matched:
          - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition)
    
       DispatcherServletAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
    
       DispatcherServletAutoConfiguration.DispatcherServletConfiguration matched:
          - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration' (OnClassCondition)
          - Default DispatcherServlet did not find dispatcher servlet beans (DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition)
    
       DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration matched:
          - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration' (OnClassCondition)
          - DispatcherServlet Registration did not find servlet registration bean (DispatcherServletAutoConfiguration.DispatcherServletRegistrationCondition)
    
       DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration#dispatcherServletRegistration matched:
          - @ConditionalOnBean (names: dispatcherServlet; types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet' (OnBeanCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration matched:
          - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration.TomcatWebServerFactoryCustomizerConfiguration matched:
          - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.coyote.UpgradeProtocol' (OnClassCondition)
    
       ErrorMvcAutoConfiguration matched:
          - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
    
       ErrorMvcAutoConfiguration#basicErrorController matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorController; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       ErrorMvcAutoConfiguration#errorAttributes matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorAttributes; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       ErrorMvcAutoConfiguration.DefaultErrorViewResolverConfiguration#conventionErrorViewResolver matched:
          - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration matched:
          - @ConditionalOnProperty (server.error.whitelabel.enabled) matched (OnPropertyCondition)
          - ErrorTemplate Missing did not find error template view (ErrorMvcAutoConfiguration.ErrorTemplateMissingCondition)
    
       ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#beanNameViewResolver matched:
          - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#defaultErrorView matched:
          - @ConditionalOnMissingBean (names: error; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       GenericCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition)
    
       HttpEncodingAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.web.filter.CharacterEncodingFilter' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
          - @ConditionalOnProperty (spring.http.encoding.enabled) matched (OnPropertyCondition)
    
       HttpEncodingAutoConfiguration#characterEncodingFilter matched:
          - @ConditionalOnMissingBean (types: org.springframework.web.filter.CharacterEncodingFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       HttpMessageConvertersAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.converter.HttpMessageConverter' (OnClassCondition)
    
       HttpMessageConvertersAutoConfiguration#messageConverters matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.http.HttpMessageConverters; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.converter.StringHttpMessageConverter' (OnClassCondition)
    
       HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration#stringHttpMessageConverter matched:
          - @ConditionalOnMissingBean (types: org.springframework.http.converter.StringHttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JacksonAutoConfiguration matched:
          - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition)
    
       JacksonAutoConfiguration.Jackson2ObjectMapperBuilderCustomizerConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition)
    
       JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition)
    
       JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration#jacksonObjectMapperBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JacksonAutoConfiguration.JacksonObjectMapperConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition)
    
       JacksonAutoConfiguration.JacksonObjectMapperConfiguration#jacksonObjectMapper matched:
          - @ConditionalOnMissingBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JacksonAutoConfiguration.ParameterNamesModuleConfiguration matched:
          - @ConditionalOnClass found required class 'com.fasterxml.jackson.module.paramnames.ParameterNamesModule' (OnClassCondition)
    
       JacksonAutoConfiguration.ParameterNamesModuleConfiguration#parameterNamesModule matched:
          - @ConditionalOnMissingBean (types: com.fasterxml.jackson.module.paramnames.ParameterNamesModule; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration matched:
          - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition)
          - @ConditionalOnProperty (spring.http.converters.preferred-json-mapper=jackson) matched (OnPropertyCondition)
          - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition)
    
       JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration#mappingJackson2HttpMessageConverter matched:
          - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JmxAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter' (OnClassCondition)
          - @ConditionalOnProperty (spring.jmx.enabled=true) matched (OnPropertyCondition)
    
       JmxAutoConfiguration#mbeanExporter matched:
          - @ConditionalOnMissingBean (types: org.springframework.jmx.export.MBeanExporter; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       JmxAutoConfiguration#mbeanServer matched:
          - @ConditionalOnMissingBean (types: javax.management.MBeanServer; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       JmxAutoConfiguration#objectNamingStrategy matched:
          - @ConditionalOnMissingBean (types: org.springframework.jmx.export.naming.ObjectNamingStrategy; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       MultipartAutoConfiguration matched:
          - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.multipart.support.StandardServletMultipartResolver', 'javax.servlet.MultipartConfigElement' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
          - @ConditionalOnProperty (spring.servlet.multipart.enabled) matched (OnPropertyCondition)
    
       MultipartAutoConfiguration#multipartConfigElement matched:
          - @ConditionalOnMissingBean (types: javax.servlet.MultipartConfigElement,org.springframework.web.multipart.commons.CommonsMultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       MultipartAutoConfiguration#multipartResolver matched:
          - @ConditionalOnMissingBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       NoOpCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition)
    
       ProjectInfoAutoConfiguration#buildProperties matched:
          - @ConditionalOnResource found location ${spring.info.build.location:classpath:META-INF/build-info.properties} (OnResourceCondition)
          - @ConditionalOnMissingBean (types: org.springframework.boot.info.BuildProperties; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched:
          - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       RestTemplateAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate' (OnClassCondition)
    
       RestTemplateAutoConfiguration#restTemplateBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.web.client.RestTemplateBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       ServletWebServerFactoryAutoConfiguration matched:
          - @ConditionalOnClass found required class 'javax.servlet.ServletRequest' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
    
       ServletWebServerFactoryAutoConfiguration#tomcatServletWebServerFactoryCustomizer matched:
          - @ConditionalOnClass found required class 'org.apache.catalina.startup.Tomcat' (OnClassCondition)
    
       ServletWebServerFactoryConfiguration.EmbeddedTomcat matched:
          - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.apache.catalina.startup.Tomcat', 'org.apache.coyote.UpgradeProtocol' (OnClassCondition)
          - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.server.ServletWebServerFactory; SearchStrategy: current) did not find any beans (OnBeanCondition)
    
       SimpleCacheConfiguration matched:
          - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)
    
       SpringApplicationAdminJmxAutoConfiguration matched:
          - @ConditionalOnProperty (spring.application.admin.enabled=true) matched (OnPropertyCondition)
    
       SpringApplicationAdminJmxAutoConfiguration#springApplicationAdminRegistrar matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskExecutionAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' (OnClassCondition)
    
       TaskExecutionAutoConfiguration#applicationTaskExecutor matched:
          - @ConditionalOnMissingBean (types: java.util.concurrent.Executor; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskExecutionAutoConfiguration#taskExecutorBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       TaskSchedulingAutoConfiguration matched:
          - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition)
    
       TaskSchedulingAutoConfiguration#taskSchedulerBuilder matched:
          - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       ValidationAutoConfiguration matched:
          - @ConditionalOnClass found required class 'javax.validation.executable.ExecutableValidator' (OnClassCondition)
          - @ConditionalOnResource found location classpath:META-INF/services/javax.validation.spi.ValidationProvider (OnResourceCondition)
    
       ValidationAutoConfiguration#defaultValidator matched:
          - @ConditionalOnMissingBean (types: javax.validation.Validator; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       ValidationAutoConfiguration#methodValidationPostProcessor matched:
          - @ConditionalOnMissingBean (types: org.springframework.validation.beanvalidation.MethodValidationPostProcessor; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration matched:
          - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
          - @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration#formContentFilter matched:
          - @ConditionalOnProperty (spring.mvc.formcontent.filter.enabled) matched (OnPropertyCondition)
          - @ConditionalOnMissingBean (types: org.springframework.web.filter.FormContentFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration#hiddenHttpMethodFilter matched:
          - @ConditionalOnProperty (spring.mvc.hiddenmethod.filter.enabled) matched (OnPropertyCondition)
          - @ConditionalOnMissingBean (types: org.springframework.web.filter.HiddenHttpMethodFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver matched:
          - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#requestContextFilter matched:
          - @ConditionalOnMissingBean (types: org.springframework.web.context.request.RequestContextListener,org.springframework.web.filter.RequestContextFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#viewResolver matched:
          - @ConditionalOnBean (types: org.springframework.web.servlet.ViewResolver; SearchStrategy: all) found beans 'defaultViewResolver', 'beanNameViewResolver', 'mvcViewResolver'; @ConditionalOnMissingBean (names: viewResolver; types: org.springframework.web.servlet.view.ContentNegotiatingViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter.FaviconConfiguration matched:
          - @ConditionalOnProperty (spring.mvc.favicon.enabled) matched (OnPropertyCondition)
    
       WebSocketServletAutoConfiguration matched:
          - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'javax.websocket.server.ServerContainer' (OnClassCondition)
          - found 'session' scope (OnWebApplicationCondition)
    
       WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration matched:
          - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.tomcat.websocket.server.WsSci' (OnClassCondition)
    
       WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration#websocketServletWebServerCustomizer matched:
          - @ConditionalOnMissingBean (names: websocketServletWebServerCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)
    
    
    Negative matches:
    -----------------
    
       ActiveMQAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)
    
       AopAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.aspectj.lang.annotation.Aspect' (OnClassCondition)
    
       ArtemisAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)
    
       BatchAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.batch.core.launch.JobLauncher' (OnClassCondition)
    
       CacheAutoConfiguration:
          Did not match:
             - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition)
          Matched:
             - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition)
    
       CacheAutoConfiguration.CacheManagerJpaDependencyConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)
             - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
    
       CaffeineCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.github.benmanes.caffeine.cache.Caffeine', 'org.springframework.cache.caffeine.CaffeineCacheManager' (OnClassCondition)
    
       CassandraAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)
    
       CassandraReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.cassandra.ReactiveSession' (OnClassCondition)
    
       CassandraRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Session' (OnClassCondition)
    
       ClientHttpConnectorAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition)
    
       CloudServiceConnectorsAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.cloud.config.java.CloudScanConfiguration' (OnClassCondition)
    
       CouchbaseAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition)
    
       CouchbaseCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'com.couchbase.client.spring.cache.CouchbaseCacheManager' (OnClassCondition)
    
       CouchbaseDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       CouchbaseRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition)
    
       DataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
    
       DataSourceTransactionManagerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)
    
       DispatcherServletAutoConfiguration.DispatcherServletConfiguration#multipartResolver:
          Did not match:
             - @ConditionalOnBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans of type org.springframework.web.multipart.MultipartResolver (OnBeanCondition)
    
       EhCacheCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'net.sf.ehcache.Cache', 'org.springframework.cache.ehcache.EhCacheCacheManager' (OnClassCondition)
    
       ElasticsearchAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       ElasticsearchDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       ElasticsearchRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition)
    
       EmbeddedLdapAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition)
    
       EmbeddedMongoAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration.JettyWebServerFactoryCustomizerConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration.NettyWebServerFactoryCustomizerConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.netty.http.server.HttpServer' (OnClassCondition)
    
       EmbeddedWebServerFactoryCustomizerAutoConfiguration.UndertowWebServerFactoryCustomizerConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition)
    
       ErrorWebFluxAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)
    
       FlywayAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition)
    
       FreeMarkerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'freemarker.template.Configuration' (OnClassCondition)
    
       GroovyTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition)
    
       GsonAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)
    
       GsonHttpMessageConvertersConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)
    
       H2ConsoleAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition)
    
       HazelcastAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)
    
       HazelcastCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'com.hazelcast.spring.cache.HazelcastCacheManager' (OnClassCondition)
    
       HazelcastJpaDependencyAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)
    
       HibernateJpaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.persistence.EntityManager' (OnClassCondition)
    
       HttpHandlerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.DispatcherHandler' (OnClassCondition)
    
       HypermediaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.hateoas.Resource' (OnClassCondition)
    
       InfinispanCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.infinispan.spring.provider.SpringEmbeddedCacheManager' (OnClassCondition)
    
       InfluxDbAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.influxdb.InfluxDB' (OnClassCondition)
    
       IntegrationAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition)
    
       JCacheCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'javax.cache.Caching', 'org.springframework.cache.jcache.JCacheCacheManager' (OnClassCondition)
    
       JacksonAutoConfiguration.JodaDateTimeJacksonConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required classes 'org.joda.time.DateTime', 'com.fasterxml.jackson.datatype.joda.ser.DateTimeSerializer', 'com.fasterxml.jackson.datatype.joda.cfg.JacksonJodaDateFormat' (OnClassCondition)
    
       JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.dataformat.xml.XmlMapper' (OnClassCondition)
    
       JdbcRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.jdbc.repository.config.JdbcConfiguration' (OnClassCondition)
    
       JdbcTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)
    
       JerseyAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.spring.SpringComponentProvider' (OnClassCondition)
    
       JestAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'io.searchbox.client.JestClient' (OnClassCondition)
    
       JmsAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.jms.Message' (OnClassCondition)
    
       JndiConnectionFactoryAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)
    
       JndiDataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
    
       JooqAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition)
    
       JpaRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition)
    
       JsonbAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition)
    
       JsonbHttpMessageConvertersConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition)
    
       JtaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition)
    
       KafkaAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition)
    
       LdapAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition)
    
       LdapRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)
    
       LiquibaseAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition)
    
       MailSenderAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.mail.internet.MimeMessage' (OnClassCondition)
    
       MailSenderValidatorAutoConfiguration:
          Did not match:
             - @ConditionalOnSingleCandidate did not find required type 'org.springframework.mail.javamail.JavaMailSenderImpl' (OnBeanCondition)
    
       MessageSourceAutoConfiguration:
          Did not match:
             - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition)
    
       MongoAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       MongoDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition)
    
       MongoReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoReactiveDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoReactiveRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)
    
       MongoRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)
    
       MustacheAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition)
    
       Neo4jDataAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.neo4j.ogm.session.SessionFactory' (OnClassCondition)
    
       Neo4jRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.neo4j.ogm.session.Neo4jSession' (OnClassCondition)
    
       OAuth2ClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition)
    
       OAuth2ResourceServerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.jwt.JwtDecoder' (OnClassCondition)
    
       PersistenceExceptionTranslationAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition)
    
       ProjectInfoAutoConfiguration#gitProperties:
          Did not match:
             - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition)
    
       QuartzAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition)
    
       RabbitAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.rabbitmq.client.Channel' (OnClassCondition)
    
       ReactiveOAuth2ClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       ReactiveOAuth2ResourceServerAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity' (OnClassCondition)
    
       ReactiveSecurityAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       ReactiveUserDetailsServiceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition)
    
       ReactiveWebServerFactoryAutoConfiguration:
          Did not match:
             - @ConditionalOnWebApplication did not find reactive web application classes (OnWebApplicationCondition)
    
       ReactorCoreAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       RedisAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition)
    
       RedisCacheConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition)
    
       RedisReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition)
    
       RedisRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition)
    
       RepositoryRestMvcAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition)
    
       RestClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClient' (OnClassCondition)
    
       SecurityAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition)
    
       SecurityFilterAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition)
    
       SecurityRequestMatcherProviderAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.web.util.matcher.RequestMatcher' (OnClassCondition)
    
       SendGridAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition)
    
       ServletWebServerFactoryConfiguration.EmbeddedJetty:
          Did not match:
             - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)
    
       ServletWebServerFactoryConfiguration.EmbeddedUndertow:
          Did not match:
             - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition)
    
       SessionAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition)
    
       SolrAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition)
    
       SolrRepositoriesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.SolrClient' (OnClassCondition)
    
       SpringDataWebAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition)
    
       TaskSchedulingAutoConfiguration#taskScheduler:
          Did not match:
             - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition)
    
       ThymeleafAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.thymeleaf.spring5.SpringTemplateEngine' (OnClassCondition)
    
       TransactionAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)
    
       UserDetailsServiceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition)
    
       WebClientAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition)
    
       WebFluxAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)
    
       WebMvcAutoConfiguration.ResourceChainCustomizerConfiguration:
          Did not match:
             - @ConditionalOnEnabledResourceChain did not find class org.webjars.WebJarAssetLocator (OnEnabledResourceChainCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#beanNameViewResolver:
          Did not match:
             - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) found beans of type 'org.springframework.web.servlet.view.BeanNameViewResolver' beanNameViewResolver (OnBeanCondition)
    
       WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#localeResolver:
          Did not match:
             - @ConditionalOnProperty (spring.mvc.locale) did not find property 'locale' (OnPropertyCondition)
    
       WebServiceTemplateAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.oxm.Marshaller' (OnClassCondition)
    
       WebServicesAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition)
    
       WebSocketMessagingAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition)
    
       WebSocketReactiveAutoConfiguration:
          Did not match:
             - @ConditionalOnWebApplication did not find reactive web application classes (OnWebApplicationCondition)
    
       WebSocketServletAutoConfiguration.JettyWebSocketConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer' (OnClassCondition)
    
       WebSocketServletAutoConfiguration.UndertowWebSocketConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'io.undertow.websockets.jsr.Bootstrap' (OnClassCondition)
    
       XADataSourceAutoConfiguration:
          Did not match:
             - @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager' (OnClassCondition)
    
    
    Exclusions:
    -----------
    
        None
    
    
    Unconditional classes:
    ----------------------
    
        org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration
    
        org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
    
        org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration
    
    
    
    2020-09-08 10:10:51.803 {main} DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type String
    2020-09-08 10:10:51.804 {main} INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8003"]
    2020-09-08 10:10:51.825 {main} INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8003 (http) with context path ''
    2020-09-08 10:10:51.828 {main} INFO  com.drawnblue.netty.ClientApplication - Started ClientApplication in 1.902 seconds (JVM running for 2.559)
    2020-09-08 10:10:51.835 {main} DEBUG i.n.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
    2020-09-08 10:10:51.836 {main} DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 8
    2020-09-08 10:10:51.847 {main} DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
    2020-09-08 10:10:51.847 {main} DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
    2020-09-08 10:10:51.852 {main} DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
    2020-09-08 10:10:51.852 {main} DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
    2020-09-08 10:10:51.853 {main} DEBUG io.netty.util.internal.PlatformDependent - Platform: Windows
    2020-09-08 10:10:51.854 {main} DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
    2020-09-08 10:10:51.856 {main} DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 8
    2020-09-08 10:10:51.856 {main} DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
    2020-09-08 10:10:51.857 {main} DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
    2020-09-08 10:10:51.857 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
    2020-09-08 10:10:51.858 {main} DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: available
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: C:UsersADMINI~1AppDataLocalTemp (java.io.tmpdir)
    2020-09-08 10:10:51.859 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
    2020-09-08 10:10:51.860 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: 3795845120 bytes
    2020-09-08 10:10:51.860 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
    2020-09-08 10:10:51.861 {main} DEBUG io.netty.util.internal.CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
    2020-09-08 10:10:51.861 {main} DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
    2020-09-08 10:10:51.862 {main} DEBUG io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
    2020-09-08 10:10:51.883 {main} DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 19160 (auto-detected)
    2020-09-08 10:10:51.884 {main} DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
    2020-09-08 10:10:51.884 {main} DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
    2020-09-08 10:10:51.963 {main} DEBUG io.netty.util.NetUtil - Loopback interface: lo (Software Loopback Interface 1, 127.0.0.1)
    2020-09-08 10:10:51.964 {main} DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file procsys
    etcoresomaxconn. Default: 200
    2020-09-08 10:10:52.060 {main} DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: e0:d5:5e:ff:fe:5f:86:6e (auto-detected)
    2020-09-08 10:10:52.070 {main} DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
    2020-09-08 10:10:52.070 {main} DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 8
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 8
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
    2020-09-08 10:10:52.081 {main} DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
    2020-09-08 10:10:52.085 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
    2020-09-08 10:10:52.086 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
    2020-09-08 10:10:52.086 {main} DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
    2020-09-08 10:10:52.101 {main} INFO  com.drawnblue.netty.client.TCPClient - 客户端连接主机:127.0.0.1,ip:8889成功!
    2020-09-08 10:10:52.153 {nioEventLoopGroup-2-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
    2020-09-08 10:10:52.153 {nioEventLoopGroup-2-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
    2020-09-08 10:10:52.153 {nioEventLoopGroup-2-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
    2020-09-08 10:10:52.153 {nioEventLoopGroup-2-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
    2020-09-08 10:10:52.153 {nioEventLoopGroup-2-1} DEBUG io.netty.util.Recycler - -Dio.netty.recycler.delayedQueue.ratio: 8
    2020-09-08 10:10:52.158 {nioEventLoopGroup-2-1} DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
    2020-09-08 10:10:52.158 {nioEventLoopGroup-2-1} DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
    2020-09-08 10:10:52.159 {nioEventLoopGroup-2-1} DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@7b720d33
    2020-09-08 10:10:52.161 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码 msg=Message(head=Head(crcCode=1, length=76, sessionId=23, type=3, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    2020-09-08 10:10:52.162 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码调用结束
    2020-09-08 10:10:52.189 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码
    2020-09-08 10:10:52.190 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码结束!message=Message(head=Head(crcCode=1, length=76, sessionId=23, type=4, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    heartbeatReqhandler receive msg:Message(head=Head(crcCode=1, length=76, sessionId=23, type=4, priority=1, attachment={dev=2534, name=张三}), body=Body(payload=welcom to shenzhen))
    clent send heartbeat***
    2020-09-08 10:10:52.192 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码 msg=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=5, priority=1, attachment=null), body=null)
    2020-09-08 10:10:52.192 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码调用结束
    2020-09-08 10:10:52.193 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码
    2020-09-08 10:10:52.193 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码结束!message=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    heartbeatReqhandler receive msg:Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    client receive heartbeat msg:Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    clent send heartbeat***
    2020-09-08 10:11:42.192 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码 msg=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=5, priority=1, attachment=null), body=null)
    2020-09-08 10:11:42.192 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgEncode - 编码调用结束
    2020-09-08 10:11:42.193 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码
    2020-09-08 10:11:42.193 {nioEventLoopGroup-2-1} INFO  com.drawnblue.nettycommon.codec.MsgDecode - 解码结束!message=Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    heartbeatReqhandler receive msg:Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    client receive heartbeat msg:Message(head=Head(crcCode=44015, length=18, sessionId=0, type=6, priority=1, attachment={}), body=Body(payload=null))
    View Code

     上面的心跳是自定义的,也可以用netty自带的心跳并进行自定义如以下,服务端采用

    //                                    .addLast(new IdleStateHandler(3,5,7, TimeUnit.SECONDS))
    // .addLast(new HeartBeatBuz())
    添加自定义心跳
    package com.drawnblue.netty.handler;
    
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    import io.netty.handler.timeout.IdleStateEvent;
    import io.netty.handler.timeout.IdleStateHandler;
    
    public class HeartBeatBuz extends ChannelInboundHandlerAdapter {
        @Override
        public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
            if(evt instanceof IdleStateHandler){
                IdleStateEvent event = (IdleStateEvent) evt;
                String eventType = null;
                switch (event.state()){
                    case READER_IDLE:
                        eventType="读空闲";
                        break;
                    case WRITER_IDLE:
                        eventType="写空闲";
                        break;
                    case ALL_IDLE:
                        eventType="读写空闲";
                        break;
                }
                System.out.println(ctx.channel().remoteAddress()+"---超时时间--"+eventType);
                System.out.println("处理相应业务");
            }
        }
    }
  • 相关阅读:
    Redis集群搭建步骤
    JS性能优化
    javaweb中实现在线人数统计
    tomcat在linux中启动慢的解决方案
    Redis高可用架构
    bjpowernode课程体系及题库
    java 相关
    码农翻身全年文章精华
    Spring源码深度解析
    PHPSTROM快捷键备份
  • 原文地址:https://www.cnblogs.com/xiaoyao-001/p/13630846.html
Copyright © 2011-2022 走看看