How java-techie-jt/spring-virtual-thead works
This Spring Boot service generates regional customer CSV reports through three modes: a direct request-thread path, a fixed platform-thread pool, and a virtual-thread executor. Each mode queries customers by region and writes a mode-prefixed CSV under reports/; the asynchronous modes acknowledge the request before report work completes. The README only summarizes results, so the database’s identity and configuration cannot be established from the sampled files.
Main entry points: ReportController.java Report controller · CustomerRepository.java Customer repository · VirtualReportService.java Virtual reports · CsvReportUtil.java CSV writer
Components 11
HTTP API
- Report controller
src/main/java/com/javatechie/controller/ReportController.java
Report execution
- Direct reports
src/main/java/com/javatechie/service/ReportService.java - Platform reports
src/main/java/com/javatechie/service/PlatformReportService.java - Virtual reports
src/main/java/com/javatechie/service/VirtualReportService.java - Virtual executor
src/main/java/com/javatechie/config/VirtualThreadExecutorConfig.java
Data and output
- Customer repository
src/main/java/com/javatechie/repository/CustomerRepository.java - Customer entity
src/main/java/com/javatechie/entity/Customer.java - Customer database
- CSV writer
src/main/java/com/javatechie/util/CsvReportUtil.java - Report files
Other components
- API caller
Connections 15
- API caller → Report controller: posts region
- Report controller → Direct reports: invokes
- Report controller → Platform reports: invokes
- Report controller → Virtual reports: invokes
- Report controller → API caller: returns status
- Direct reports → Customer repository: queries region
- Platform reports → Customer repository: queries region
- Virtual reports → Customer repository: queries region
- Customer repository → Customer database: reads customers
- Customer repository → Customer entity: returns records
- Direct reports → CSV writer: writes report
- Platform reports → CSV writer: writes report
- Virtual reports → CSV writer: writes report
- CSV writer → Report files: writes CSV
- Virtual reports → Virtual executor: dispatches task