1、完善名称
1.1、完善线程名称
如图在跟netty代码时经常会遇到这种奇怪的线程名字,到底是什么???
- 2-1:代表的是bossGrup
- 3-1:代表的是workerGrup
- 如果netty改变其他实现方式,可能就不会是2-1或3-1这种方式了,让人不好理解
定义线程名称
EventLoopGroup boss = new NioEventLoopGroup(0,new DefaultThreadFactory("boss"));
EventLoopGroup worker = new NioEventLoopGroup(0,new DefaultThreadFactory("worker"));
1.2、完善Handler名称
如图Handler中#0,$1#0又是什么鬼???
- #0:防止一个pipeline中加入多个handler,所以用#0 #1代表,如果handler有名字的话就不需要这种符号代替了
- $1:匿名内部类
定义handler名称
// pipeline添加handler时定义handler的名称
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
2、netty的日志
添加日志handler
pipeline.addLast(“loggingHandler”,new LoggingHandler(LogLevel.INFO));
查看LoggingHandler构造方法如图
查看日志工厂
日志优先级:SLF4J>Log4J>Log4J2>java.util.logging
尝试以上优先级加载日志,判断当前程序中是否有对应的依赖jar包
。netty源码是如何编译过的呢,如图,通过optional禁止依赖传递
成果