SpringBoot调用流程源码(十八)tomcat的启动(八)监听启动,读写

本文深入解析了SpringBoot应用在启动过程中Tomcat如何进行端口监听。当ServletWebServerApplicationContext完成刷新后,通过NioEndPoint的bind()方法绑定端口。使用Selector进行轮询监听,BlockPoller线程处理接收的数据,SocketProcessor负责读取信息,并最终由Spring的OncePerRequestFilter处理请求。这个过程涉及了Springboot对Tomcat的集成,以及Filter的注册和调用链路。
摘要由CSDN通过智能技术生成

tomcat中所有的组件都启动了之后,后面就需要绑定监听端口了,监听端口的地方是在ServletWebServerApplicationContext的finishRefresh()方法中,最后会进入了NioEndPoint的bind()方法,在这个方法中进行了端口的绑定和监听

    @Override
    public void bind() throws Exception {

        serverSock = ServerSocketChannel.open();
        socketProperties.setProperties(serverSock.socket());
        InetSocketAddress addr = (getAddress()!=null?new InetSocketAddress(getAddress(),getPort()):new InetSocketAddress(getPort()));
        serverSock.socket().bind(addr,getAcceptCount());
        serverSock.configureBlocking(true); //mimic APR behavior

        // Initialize thread count defaults for acceptor, poller
        if (acceptorThreadCount == 0) {
            // FIXME: Does
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值