【优化】Springboot 修改 tomcat连接池

【优化】Springboot 修改 tomcat连接池

        factory.setTomcatProtocolHandlerCustomizers(tomcatProtocolHandlerCustomizers);
 

可以更换为 虚拟线程连接池

package org.config.init;

import org.apache.catalina.Context;
import org.apache.catalina.core.AprLifecycleListener;
import org.apache.tomcat.util.scan.StandardJarScanner;
import org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Collection;
import java.util.List;
import java.util.concurrent.Executors;

/**
 * @Description: TomcatFactoryConfig
 */
@Configuration
public class TomcatFactoryConfig {
    /**
     * tomcat-embed-jasper引用后提示jar找不到的问题
     */
    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
            }
        };
        factory.addConnectorCustomizers(connector -> {
//            connector.setProperty("relaxedPathChars", "[]{}");
//            connector.setProperty("relaxedQueryChars", "[]{}");

            connector.setProperty("relaxedPathChars", "\"#<>[\\]^`{|}/");
            connector.setProperty("relaxedQueryChars", "\"#<>[\\]^`{|}/");

        });


        //支持APR  AIO
        //factory.setProtocol("org.apache.coyote.http11.Http11AprProtocol");
        //factory.addContextLifecycleListeners(new AprLifecycleListener());
        //支持APR  AIO

        Collection<TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers = factory.getTomcatProtocolHandlerCustomizers();
        tomcatProtocolHandlerCustomizers.add(protocolHandlerCustomizer());
        factory.setTomcatProtocolHandlerCustomizers(tomcatProtocolHandlerCustomizers);

        return factory;
    }

    public static TomcatProtocolHandlerCustomizer<?> protocolHandlerCustomizer(){
        return protocolHandler -> {
            protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
        };
    }
    
}

相关推荐

  1. 优化Springboot 修改 tomcat连接

    2023-12-20 07:54:02       61 阅读
  2. Springboot_Tomcat数据库连接配置

    2023-12-20 07:54:02       62 阅读
  3. SpringBoot整合Druid数据库连接

    2023-12-20 07:54:02       51 阅读
  4. SpringBoot连接mysql数据库相关配置(druid连接

    2023-12-20 07:54:02       58 阅读
  5. springboot多数据源支持自定义连接

    2023-12-20 07:54:02       67 阅读
  6. springboot 查看和修改内置 tomcat 版本

    2023-12-20 07:54:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 07:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 07:54:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 07:54:02       82 阅读
  4. Python语言-面向对象

    2023-12-20 07:54:02       91 阅读

热门阅读

  1. Graph2NLP浅谈

    2023-12-20 07:54:02       71 阅读
  2. ClickHouse理论第一篇

    2023-12-20 07:54:02       68 阅读
  3. hadoop运行jar遇到的一个报错

    2023-12-20 07:54:02       56 阅读
  4. 【MyBatis-Plus】常用的内置接口

    2023-12-20 07:54:02       69 阅读
  5. SEO站群服务器选择如何影响优化过程

    2023-12-20 07:54:02       64 阅读
  6. MySQL安装

    2023-12-20 07:54:02       74 阅读