ChannelInitializer的類圖:
通道初始化器ChannelInitializer實際上為Inbound通道處理器,主要目的是為程序員提供了一個簡單的工具,用於在某個Channel注冊到EventLoop后,對這個Channel執行一些初始化操作。ChannelInitializer雖然會在一開始會被注冊到Channel相關的pipeline里,但是在初始化完成之后,ChannelInitializer會將自己從pipeline中移除,不會影響后續的操作。
ChannelInitializer是一個抽象類,不能直接使用,需要重寫initChannel方法。
ChannelInitializer的使用場景:
- 在ServerBootstrap初始化時,為監聽端口accept事件的Channel添加ServerBootstrapAcceptor
- 在有新鏈接進入時,為監聽客戶端read/write事件的Channel添加用戶自定義的ChannelHandler