org.jboss.netty.bootstrap
类 Bootstrap

java.lang.Object
  继承者 org.jboss.netty.bootstrap.Bootstrap
所有已实现的接口:
ExternalResourceReleasable
直接已知子类:
ClientBootstrap, ConnectionlessBootstrap, ServerBootstrap

public class Bootstrap
extends java.lang.Object
implements ExternalResourceReleasable

初始化通道的帮助类.这个类为它的子类提供通用的数据结构,这些子类使用通用的数据结构初始化通道以及子通道,请分别参阅初始化客户端通道的 ClientBootstrap、初始化服务端通道的 ServerBootstrap, 以及初始化无状态通道(如:UDP)的 ConnectionlessBootstrap


方法摘要
 ChannelFactory getFactory()
          返回一个用来处理I/O操作的ChannelFactory
 java.lang.Object getOption(java.lang.String key)
          通过指定键返回对应的选项值。
 java.util.Map<java.lang.String,java.lang.Object> getOptions()
          返回配置每个新的Channel和子Channel的选项集,子Channel属性都是以 "child."开头(如:"child.keepAlive")
 ChannelPipeline getPipeline()
          返回默认的ChannelPipeline,当一个新的Channel被创建,该管道会在被克隆。
 java.util.Map<java.lang.String,ChannelHandler> getPipelineAsMap()
          返回该启动器默认管道的有序映射,为getPipeline()提供方便友好的依赖注入。
 ChannelPipelineFactory getPipelineFactory()
          返回ChannelPipelineFactory
 void releaseExternalResources()
          释放该对象依赖的外部资源.如果其他对象正在使用这些外部资源(如.线程池),千万不要调用该方法.
 void setFactory(ChannelFactory factory)
          设置一个用来处理I/O操作的ChannelFactory ,这个方法只能被调用一次,如果通道工厂已经通过构造函数设置了,该方法会抛出异常
 void setOption(java.lang.String key, java.lang.Object value)
          使用指定键/值设置选项,如果已经存在相同键选项,则替换新值,如果设置的值为null,则移出该选项,设置子Channel,键名须以 "child."开头。
 void setOptions(java.util.Map<java.lang.String,java.lang.Object> options)
          为每个新的Channel和子Channel设置选项集Sets the options which configures a new Channel and its child Channels.
 void setPipeline(ChannelPipeline pipeline)
          设置默认ChannelPipeline,当一个新的Channel被创建时该管道会被克隆.
 void setPipelineAsMap(java.util.Map<java.lang.String,ChannelHandler> pipelineMap)
          使用有序的映射设置默认管道,为setPipeline(ChannelPipeline)提供方便友好的依赖注入 请注意该方法只有在以下情况才是一个便利的方法
1) 你只为这个启动类创建一个通道 (如:一次性客户端通道或者无状态通道)
2) 管道上的所有处理器都是无状态的.
 void setPipelineFactory(ChannelPipelineFactory pipelineFactory)
          设置ChannelPipelineFactory.
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getFactory

public ChannelFactory getFactory()
返回一个用来处理I/O操作的ChannelFactory

抛出:
java.lang.IllegalStateException - 如果还没有为这个类设置通道工厂,可以通过构造函数或者setFactory(ChannelFactory) 方法设置.

setFactory

public void setFactory(ChannelFactory factory)
设置一个用来处理I/O操作的ChannelFactory ,这个方法只能被调用一次,如果通道工厂已经通过构造函数设置了,该方法会抛出异常

抛出:
java.lang.IllegalStateException - 如果工厂已经设置则抛出异常

getPipeline

public ChannelPipeline getPipeline()
返回默认的ChannelPipeline,当一个新的Channel被创建,该管道会在被克隆。 Bootstrap使用返回的管道为每个新的Channel创建一个新的包含相同实体的的管道

请注意该方法只有在以下情况才是一个便利的方法
1) 你只为这个启动类创建一个通道 (如:一次性客户端通道或者无状态通道)
2) 管道上的所有处理器都是无状态的.
如果你的管道包含一个有状态的处理器ChannelHandler并且要通过这个启动类创建一个或多个通道时,那么必须调用 setPipelineFactory(ChannelPipelineFactory)方法. (如:服务端通道).

返回:
默认 ChannelPipeline
抛出:
java.lang.IllegalStateException - 如果方法setPipelineFactory(ChannelPipelineFactory) 被调用过,则抛出异常.

setPipeline

public void setPipeline(ChannelPipeline pipeline)
设置默认ChannelPipeline,当一个新的Channel被创建时该管道会被克隆. Bootstrap使用指定的管道为每个新的Channel创建一个新的包含相同实体的的管道

调用该方法也使用了指定的管道的浅拷贝为内部的ChannelPipelineFactory设置了 pipelineFactory属性

请注意该方法只有在以下情况才是一个便利的方法
1) 你只为这个启动类创建一个通道 (如:一次性客户端通道或者无状态通道)
2) 管道上的所有处理器都是无状态的.
如果你的管道包含一个有状态的处理器ChannelHandler并且要通过这个启动类创建一个或多个通道时,那么必须调用 setPipelineFactory(ChannelPipelineFactory)方法. (如:服务端通道).


getPipelineAsMap

public java.util.Map<java.lang.String,ChannelHandler> getPipelineAsMap()
返回该启动器默认管道的有序映射,为getPipeline()提供方便友好的依赖注入。

请注意该方法只有在以下情况才是一个便利的方法
1) 你只为这个启动类创建一个通道 (如:一次性客户端通道或者无状态通道)
2) 管道上的所有处理器都是无状态的.
如果你的管道包含一个有状态的处理器ChannelHandler并且要通过这个启动类创建一个或多个通道时,那么必须调用 setPipelineFactory(ChannelPipelineFactory)方法. (如:服务端通道).

抛出:
java.lang.IllegalStateException - 如果方法setPipelineFactory(ChannelPipelineFactory) 被调用过,则抛出异常.

setPipelineAsMap

public void setPipelineAsMap(java.util.Map<java.lang.String,ChannelHandler> pipelineMap)
使用有序的映射设置默认管道,为setPipeline(ChannelPipeline)提供方便友好的依赖注入

请注意该方法只有在以下情况才是一个便利的方法
1) 你只为这个启动类创建一个通道 (如:一次性客户端通道或者无状态通道)
2) 管道上的所有处理器都是无状态的.
如果你的管道包含一个有状态的处理器ChannelHandler并且要通过这个启动类创建一个或多个通道时,那么必须调用 setPipelineFactory(ChannelPipelineFactory)方法. (如:服务端通道).

抛出:
java.lang.IllegalArgumentException - 如果指定的映射不是有序的,则抛出异常

getPipelineFactory

public ChannelPipelineFactory getPipelineFactory()
返回ChannelPipelineFactory

另请参见:
getPipeline()

setPipelineFactory

public void setPipelineFactory(ChannelPipelineFactory pipelineFactory)
设置ChannelPipelineFactory. 调用该方法会废止该启动器当前的"pipeline"属性. 随后调用 getPipeline()getPipelineAsMap() 方法就会抛出 IllegalStateException异常.

另请参见:
setPipeline(ChannelPipeline), setPipelineAsMap(Map)

getOptions

public java.util.Map<java.lang.String,java.lang.Object> getOptions()
返回配置每个新的Channel和子Channel的选项集,子Channel属性都是以 "child."开头(如:"child.keepAlive")


setOptions

public void setOptions(java.util.Map<java.lang.String,java.lang.Object> options)
为每个新的Channel和子Channel设置选项集Sets the options which configures a new Channel and its child Channels. 设置子 Channel属性都是以 "child."开头(如:"child.keepAlive")


getOption

public java.lang.Object getOption(java.lang.String key)
通过指定键返回对应的选项值。获取子Channel的选项值,以 "child."开头。(如: "child.keepAlive")

参数:
key - 选项键
返回:
如果键值存在则返回,否则返回null

setOption

public void setOption(java.lang.String key,
                      java.lang.Object value)
使用指定键/值设置选项,如果已经存在相同键选项,则替换新值,如果设置的值为null,则移出该选项,设置子Channel,键名须以 "child."开头。(如: "child.keepAlive")

参数:
key - 键名
value - 键值

releaseExternalResources

public void releaseExternalResources()
释放该对象依赖的外部资源.如果其他对象正在使用这些外部资源(如.线程池),千万不要调用该方法.
该方法简单委派调用 ChannelFactory.releaseExternalResources() 方法.

指定者:
接口 ExternalResourceReleasable 中的 releaseExternalResources