Я использую Spring Webflux и ReactiveMongoRepository в проекте Spring Boot, и я хочу, чтобы каждый поток представлял собой список объектов, как показано ниже, например:
// 1st Flux Started:
[
{
// 1st Dashboard
},
{
// 2nd Dashboard
}
]
// 1st Flux Ended
// 2nd Flux Started:
[
{
// 1st Dashboard
},
{
// 2nd Dashboard
}
]
// 2nd Flux Ended
Хранилище:
@Repository
public interface ReactiveDashboardRepository extends ReactiveMongoRepository<Dashboard, String> {
}
Услуга:
@Service
public class ReactiveDashboardServiceImpl implements ReactiveDashboardService {
private ReactiveDashboardRepository reactiveDashboardRepository;
public ReactiveDashboardServiceImpl(ReactiveDashboardRepository reactiveDashboardRepository) {
this.reactiveDashboardRepository = reactiveDashboardRepository;
}
public Flux<Dashboard> getDashboards() {
return this.reactiveDashboardRepository.findAll();
}
}
Контроллер:
@CrossOrigin
@RestController
@RequestMapping("/api/sse")
public class ReactiveDashboardRestController {
private ReactiveDashboardService reactiveDashboardService;
public ReactiveDashboardRestController(ReactiveDashboardService reactiveDashboardService) {
this.reactiveDashboardService = reactiveDashboardService;
}
@GetMapping(value = "/dashboards", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Dashboard> getDashboards() {
return this.reactiveDashboardService.getDashboards();
}
}
Так что, в основном, я хочу, чтобы все объекты в массиве были частью одного потока, потому что именно так создается клиентское приложение, которое я буду использовать. На данный момент их всего 3. Так что в каждом потоке будет храниться массив всего объекта. Я знаю, что это не лучшее использование webflux.
Как этого достичь, если это возможно?