当前位置: 首页 > news >正文

netty之bootstrap源码分析

写在前面

本文看下bootstrap类。

1:正文

1.1:干啥的?

在进行netty编程的时候都是先创建一个bootstrap,然后设置很多的东西,如下代码(服务端启动代码)

ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).option(ChannelOption.SO_BACKLOG, 100).handler(new LoggingHandler(LogLevel.INFO)).childHandler(new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel ch) throws Exception {ChannelPipeline p = ch.pipeline();if (sslCtx != null) {p.addLast(sslCtx.newHandler(ch.alloc()));}//p.addLast(new LoggingHandler(LogLevel.INFO));p.addLast(serverHandler);}});// Start the server.
ChannelFuture f = b.bind(PORT).sync();

最后的启动也是通过它,所以bootstrap是干啥的呢?是一个引导类,负责引导程序启动,类似于导游的作用,带你玩!

1.2:主要的类

类图如下:
在这里插入图片描述
顶层的类是AbstractBootstrap,看名字就知道这是个抽象类,如下:


public abstract class AbstractBootstrap<B extends AbstractBootstrap<B, C>, C extends Channel> implements Cloneable {// ...volatile EventLoopGroup group;@SuppressWarnings("deprecation")// serversocketchannel工厂,负责创建serversocketchannelprivate volatile ChannelFactory<? extends C> channelFactory;// 要绑定的地址private volatile SocketAddress localAddress;// ...
}

对应的两个子类ServerBootstrap,Bootstrap分别用于服务端和客户端的启动,如下:

public class Bootstrap extends AbstractBootstrap<Bootstrap, Channel> {
}public class ServerBootstrap extends AbstractBootstrap<ServerBootstrap, ServerChannel> {
}

写在后面

参考文章列表


http://www.mrgr.cn/news/63206.html

相关文章:

  • nginx-proxy-manager实现反向代理+自动化证书(实战)
  • .net 在线客服系统,到底能不能处理 50万 级消息量,系统架构实践
  • 什么是RabbitMQ
  • C++ | Leetcode C++题解之第523题连续的子数组和
  • @Controller 和 @RestController 区别
  • 轻型民用无人驾驶航空器安全操控理论培训知识总结-多旋翼部分
  • Android 中选择本地文件并获取文件路径
  • BC1 2充电协议简介
  • JS进阶级案例-----时钟
  • Python零基础 [2.3] if else 语句的详解与示例
  • 《PHP爬虫:当“购物狂”遇上“代码诗人”》
  • 算子级血缘助企业数据管理“自动化、精细化、智能化”
  • Redis 中的定期删除和惰性删除究竟是怎样实现的?
  • flutter报错‘/Users/xxx/.gradle/caches/journal-1/file-access.bin‘.
  • 用图像增强来充实训练数据集,算不算是一种‘摸鱼’的方法?
  • 大型语言模型如何影响就业?大模型入门到精通,收藏这篇就够了
  • 初学者如何对大模型进行微调?
  • Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
  • 页面跳转不刷新 histoy.go hisroty.back不生效
  • Consul 实战指南
  • 【JVM详解JVM优化】JVM内存模型
  • BO-Transformer-LSTM多特征分类预测/故障诊断(Matlab实现)
  • 你知道前端水印功能是怎么实现的吗?
  • 外贸商城平台系统开发:多语言设计与实现
  • 【unique_str 源码学习】
  • 基于Spring事务模板编程式事务小工具