一覧へ戻る
Project Loom Experiment using Spring Boot, Spring WebMVC, and Postgres
- star 数
- 114
- watcher 数
- 8
- fork 数
- 16
- issue 数
- 0
- 最終更新
- 2022/08/04
Project Loom Experiment using Spring Boot, Spring WebMVC, and Postgres
This repository contains an experiment that uses a Spring Boot application with Virtual Threads.
Involved components:
synchronized into Loom-friendly Locks: pgjdbc/pgjdbc#1951)This experiment evolves incrementally, find the previous state at https://github.com/mp911de/spring-boot-virtual-threads-experiment/tree/boot-2.4.
You need Java 19 (EAP) with --enable-preview to run the example.
Customization of a vanilla Spring Boot with Tomcat application:
@Bean AsyncTaskExecutor applicationTaskExecutor() { // enable async servlet support ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor(); return new TaskExecutorAdapter(executorService::execute); } @Bean TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() { return protocolHandler -> { protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor()); }; }
After starting the application, run GET http://localhpst:8080/where-am-i to verify you're running on a virtual thread:
$ http :8080/where-am-i
HTTP/1.1 200
Connection: keep-alive
Content-Length: 51
Content-Type: text/plain;charset=UTF-8
Date: Wed, 27 Jul 2022 09:34:23 GMT
Keep-Alive: timeout=60
VirtualThread[#82]/runnable@ForkJoinPool-1-worker-1