在引导过程中添加多个 ChannelHandler

Netty 提供了一个特殊的 ChannelInboundHandlerAdapter 子类:

  1. public abstract class ChannelInitializer<C extends Channel> extends ChannelInboundHandlerAdapter

它定义了下面的方法:

  1. protect ed abstract void initChannel(C ch) throws Exception;

这个方法提供了一种将多个 ChannelHandler 添加到一个 ChannelPipeline 中的简便方法。 你只需要简单地向 Bootstrap 或 ServerBootstrap 的实例提供你的 ChannelInitializer 实现即 可,并且一旦 Channel 被注册到了它的 EventLoop 之后,就会调用你的 initChannel()版本。
在该方法返回之后,ChannelInitializer 的实例将会从 ChannelPipeline 中移除它自己