Netty的Handler 理解
NioServerSocketChannelFactory channelFactory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()); bootstrap = new ServerBootstrap(channelFactory); bootstrap.setPipelineFactory(new MyNioChannelPipelineFactory()); //第一种方式 bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { ChannelPipeline p = Channels.pipeline(); p.addLast("myHandler1", new PrintMessageReceviedHandler()); return p; } }); //第二种方式 bootstrap.getPipeline().addLast("myHandler2", new PrintMessageReceviedHandler());
这两种方式:唯一的区别是不是 第一种每个请求连接都会创建一个实例 而第二种只会创建一个??
我理解的对不?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这两种写法本质上没区别,只有你需要在factory中创建不同handler的时候,才只能用第一种写法。
第二种方法是对bootstrap的默认pipeline的浅拷贝,和Channel绑定的ChannelPipeline是new的,但是里面的ChannelHandler还是同一个
可以这么理解