Bootstrap 类 解析

一 简介

      一个用来初始化 channel的辅助类。

      这个类用来提供通用的数据结构 为了其子类  ,子类用来通过用通用的数据结构实际的初始化 channel 和他们的子 channel  。

      请参考clientBootstrap ,ServerBootstrap 和ConnectionlessBootstrap 来初始化 客户端 服务端和udp服务端。


二 属性:

          

    private volatile ChannelFactory factory;

    private volatile ChannelPipeline pipeline = Channels.pipeline();

    private volatile ChannelPipelineFactory pipelineFactory = pipelineFactory(pipeline);

    private volatile Map<String, Object> options = new HashMap<String, Object>();

   

三 方法

     1. Bootstrap()

          没有设置 channelFactory 创建实例。 所以setFactory 比如在 任何IO操作之前调用。

   

    2. Bootstrap(ChannelFactory channelFactory)

           创建一个 新的实例 ,使用 特定的初始 ChannelFactory


   3. ChannelFactory getFactory() 

       如果没有 设置 ChannelFactory 则抛出异常 IllegalStateException("factory is not set yet.")


   4.void setFactory(ChannelFactory factory)

      

  5.ChannelPipeline getPipeline() 

       返回默认的, 当一个 新的channel创建时clone出来的ChannelPipeline实例。

     bootstrap 会 创建一个新的 pipeline ,其和 为一个新channel返回的pipeline有相同的入口


    注意: 这个方法是一个便利的方法,仅仅用于下面两种情况

      a.仅当你要为这个bootstrap创建仅仅一个channel (例如一次就一个客户端连接或者udp通道)

      b.所有的handler都是无状态的

    

    一般情况下,你必须用  setPipelineFactory 方法创建

    a.你的pipleline包含有状态的channelHandler 

    b。bootstrap会创建一个或多个channel


6.void setPipeline(ChannelPipeline pipeline)

    注意事项:同 getPipeline, 一般建议还是用 setPipelineFactory 方法

 

 7.Map<String, ChannelHandler> getPipelineAsMap()

      通过order map返回 channelhandler

       注意事项 同上 ,也就是说尽量不要对返回的 map中的channel进行更改


8.void setPipelineAsMap(Map<String, ChannelHandler> pipelineMap) 

      设置 pipelineMap ,注意事项,尽量不要用这个方式 而要用  setPipelineFactory 方法

      注意事项 同上


9.  ChannelPipelineFactory getPipelineFactory()


10 void setPipelineFactory(ChannelPipelineFactory pipelineFactory)

      设置 ChannelPipelineFactory 。

      调用这个方法的时候当前 bootstrap的 pipeline 属性将无效,然后后面接着调用  getPipeline 和  getPipelineAsMap 将报异常


11 Map<String, Object> getOptions()


12  setOptions(Map<String, Object> options) 

      如果 option中的某个 tuple是 原来的 option中已有的,则会覆盖原来的配置

13 void releaseExternalResources()

       调用 ChannelFactory 的  releaseExternalResources 方法


14  boolean isOrderedMap(Map<?, ?> map) 

      用于 setPipelineAsMap 方法 校验map是否是 orderedMaptraa

   


   


转载于:https://my.oschina.net/dyaod/blog/483970

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以回答这个问题。Flask Bootstrap是一个Flask扩展,可以让您的Flask应用程序使用Twitter Bootstrap CSS框架。它提供了一些模板和模板标记,使您可以更容易地将Bootstrap集成到您的应用程序中。具体使用方法和案例可以参考Flask Bootstrap的官方文档。 ### 回答2: Flask Bootstrap是一个用于在Flask应用程序中使用Twitter Bootstrap的扩展。它提供了一组Flask模板和表单小部件,使开发人员能够更轻松地创建漂亮的界面。 使用Flask Bootstrap可以简化前端开发过程。它提供了一些预定义的CSS类和样式,以及JavaScript插件,可以轻松地添加各种交互功能,如模态框、导航栏、下拉菜单等。 在使用Flask Bootstrap的案例中,通常需要在Flask应用程序中首先导入Flask Bootstrap的扩展。然后,可以从Flask Bootstrap的模板中继承,并使用提供的表单小部件来创建表单。这些表单小部件提供了预定义的样式,以及验证和处理表单输入的功能。 在使用Flask Bootstrap的案例中,也可以通过使用提供的CSS类和样式,轻松地创建漂亮的界面。可以使用提供的网格系统来布局页面,并使用预定义的样式来装饰元素。 Flask Bootstrap还提供了一些JavaScript插件,可以轻松地添加交互功能。例如,可以使用模态框来显示弹出窗口,使用导航栏来导航页面,使用下拉菜单来提供更多选项。 总而言之,Flask Bootstrap提供了一组帮助开发人员在Flask应用程序中轻松创建漂亮界面的工具。它能够简化前端开发过程,并提供了一些预定义的CSS类、样式和JavaScript插件,以及处理表单输入的功能。使用Flask Bootstrap,开发人员可以更高效地开发功能丰富且易于使用的应用程序。 ### 回答3: Flask Bootstrap是一个基于Flask框架的扩展,用于快速创建具有美观样式的Web应用程序。它结合了Flask和Bootstrap框架的功能,提供了许多有用的功能,如表单处理、导航栏、模态框等,使开发者能够更轻松地构建漂亮的界面。 使用Flask Bootstrap,开发者可以根据自己的需求轻松定制应用程序的外观和样式。它提供了一系列预定义的模板和组件,使开发者能够快速构建网页布局和设计。开发者可以通过简单地继承Flask Bootstrap提供的模板,并重写其中的内容来定制自己的界面。 在使用Flask Bootstrap时,开发者需要安装相应的扩展包并导入相关的模块。在应用程序中,开发者可以使用Flask Bootstrap提供的表单类来创建表单,并使用内置的表单处理方法来处理用户的输入。开发者还可以使用Flask Bootstrap提供的导航栏类创建导航栏,并在其中添加链接和下拉菜单。此外,Flask Bootstrap还提供了模态框、提示框等功能,方便开发者在网页中添加弹出窗口和提示信息。 Flask Bootstrap还支持基于Ajax的加载方式,使网页内容可以在不刷新页面的情况下进行更新。这使得开发者能够为用户提供更好的交互体验。 总之,Flask Bootstrap是一个功能强大的扩展,可以帮助开发者更快速、更方便地构建漂亮的Web界面。通过使用其提供的模板和组件,开发者可以轻松实现自己的设计需求,并为用户提供良好的用户体验。无论是构建个人网站还是商业应用程序,Flask Bootstrap都是一个值得使用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值