Using virtual thread in Spring 6 without spring boot

147 Views Asked by At

I want to use virtual thread in my spring application where tomcat is not embedded within the application like in spring boot app. So to enable virtual thread I added the following configuration.

import java.util.concurrent.Executors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.core.task.support.TaskExecutorAdapter;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer;

@EnableAsync
@Configuration
public class VirtualThreadConfig {
    
    @Bean
    public AsyncTaskExecutor applicationTaskExecutor() {
        return new TaskExecutorAdapter(Executors.newVirtualThreadPerTaskExecutor());
    }

    @Bean
    public TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() {
        return protocolHandler -> {
            protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
        };
    }
}

Where do I get the org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer class? What dependency needs to be included?

0

There are 0 best solutions below