非Spring Boot的Spring 6应用虚拟线程配置:Tomcat类依赖咨询
关于
TomcatProtocolHandlerCustomizer的依赖与使用说明 首先要明确:org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer是Spring Boot专属类,你的应用是非Spring Boot的纯Spring 6应用且未嵌入Tomcat,这个Bean对你的场景完全没用,直接删掉protocolHandlerVirtualThreadExecutorCustomizer()这个Bean配置即可。
为什么用不上?
这个类的作用是定制Spring Boot内置Tomcat的协议处理器,给嵌入式Tomcat的请求处理线程池替换为虚拟线程。而你的应用没有嵌入Tomcat,自然不需要这类配置。
你的场景下正确的虚拟线程配置
只保留applicationTaskExecutor()这个Bean就足够了,它会为Spring的异步任务(比如标注@Async的方法)提供虚拟线程支持,完全能满足纯Spring应用的异步场景需求。
若误操作非要引入该类(不推荐)
如果是不小心添加了这个配置,硬要引入该类的话,需要添加Spring Boot的Tomcat嵌入式依赖(但这会让应用带上Spring Boot的部分特性,违背你非Spring Boot应用的初衷),Maven依赖如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
再次强调:非Spring Boot的独立Spring应用,不需要也不应该引入这个依赖和配置。
内容的提问来源于stack exchange,提问作者Raju Yadav
相关产品推荐
相关产品推荐

