Я новичок в Spring WebFlux.Согласно другим сообщениям stackoverflow, я пытаюсь написать простую реактивную конечную точку, каждую секунду она должна создавать и отправлять новое событие книги.Проблема в том, что он создает только одну книгу, после чего он прекращает создавать объекты, хотя канал потока все еще работает.Это мой код:
Book.java
@Document(collection = "books")
public class Book extends SACDPObject{
@NotBlank
private String title;
private Long test;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Long getTest() {
return test;
}
public void setTest(Long test) {
this.test = test;
}
}
NotificationController.java
@Slf4j
@RepositoryRestController
@RequestMapping("/notification")
public class NotificationController {
@CrossOrigin
@GetMapping(path = "/books", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux<Book> findBooks() {
Flux<Long> interval = Flux.interval(Duration.ofSeconds(1));
Flux<Book> tFlux = Flux.fromStream(Stream.generate(()-> new Book()));
return Flux.zip(interval, tFlux).map(Tuple2::getT2);
}
}
Для тестирования я использую команды cURL из моей командной строки curl -v http://localhost:8080/notification/books
но я вижу только одну книгу, подобную этой:
{
"created" : "Sun Feb 24 13:57:06 CET 2019",
"identifier" : "6f793ecc-9f67-4511-87f1-93c1f251e2eb",
"title" : null,
"test" : null
}
Где я ошибаюсь?