Se pesquisarmos o código-fonte do projeto spring boot 2.0.3 (todos os arquivos), não há menção ao nio.
De acordo com a documentação do spring , o nio está desabilitado por padrão, então não esperamos usá-lo.
Entretanto, quando o aplicativo inicia, ele diz "restartedMain org.apache.coyote.http11.Http11NioProtocol [] => Inicializando ProtocolHandler ["http-nio-8080"]"
Isso significa que estamos usando nio? Se sim, os documentos estão errados sobre o padrão de não usá-lo?
2024-10-23T09:10:56,001Z INFO restartedMain o.s.b.web.embedded.tomcat.TomcatWebServer [] => Tomcat initialized with port(s): 8080 (http)
2024-10-23T09:10:56,031Z INFO restartedMain org.apache.coyote.http11.Http11NioProtocol [] => Initializing ProtocolHandler ["http-nio-8080"]
2024-10-23T09:10:56,052Z INFO restartedMain org.apache.catalina.core.StandardService [] => Starting service [Tomcat]
2024-10-23T09:10:56,052Z INFO restartedMain org.apache.catalina.core.StandardEngine [] => Starting Servlet Engine: Apache Tomcat/8.5.31
Http11NioProtocol
é o conector IO (NIO) não bloqueante para Tomcat.O Tomcat 8 normalmente usa o protocolo http-nio, a menos que seja configurado especificamente para usar o protocolo de bloqueio de E/S (BIO) (Http11Protocol). Portanto, mesmo que você não tenha configurado explicitamente o NIO no seu projeto, o próprio Tomcat o está usando por padrão.
Tentar:
Isso forçaria o uso do conector IO de bloqueio caso você queira deixar de usar o NIO.