@RestController
public class MovieController {
private final MovieRepository movieRepository;
public MovieController(MovieRepository movieRepository) {
this.movieRepository = movieRepository;
}
// Notice the return type
@GetMapping("/movies")
public Flux getAllMovies() {
return movieRepository.findAll();
}
}
Quando os requisitos da aplicação exigem processamento de dados de alto rendimento, o WebFlux é a solução ideal.
Persistência Java com Spring Data
Spring Data é uma estrutura altamente sofisticada e com reconhecimento de persistência que foi refinada ao longo dos anos. Além de oferecer suporte à API Jakarta Persistence do Java, o Spring fornece acesso fácil a abordagens mais recentes, como a seguinte classe de repositório. Observe que esta classe não requer nenhuma anotação porque o Spring Boot reconhece que ela é uma subclasse de uma classe base de persistência:
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
public interface MovieRepository extends ReactiveCrudRepository {
// You define the method signature; Spring Data R2DBC provides the implementation
Flux findByGenre(String genre);
}
Este código usa Spring R2DBC, uma biblioteca de conexão de banco de dados relacional que usa drivers reativos assíncronos. A beleza é que o próprio mecanismo fornece a implementação com base nos campos e métodos do objeto de dados; como desenvolvedor, você não precisa implementar o findByGenre método.
