https://github.com/feltex/demo-webflux
Criação de uma API CRUD para gerenciamento de alunos utilizando Spring Boot com WebFlux, Java 21, PostgreSQL e testes no Postman. A aplicação exemplifica como configurar o ambiente, conectar-se a um banco de dados PostgreSQL, implementar repositórios reativos e criar endpoints para operações de criação, leitura, atualização.
https://github.com/feltex/demo-webflux
docker docker-compose java java-21 lombok postgresql r2dbc webflux
Last synced: 9 months ago
JSON representation
Criação de uma API CRUD para gerenciamento de alunos utilizando Spring Boot com WebFlux, Java 21, PostgreSQL e testes no Postman. A aplicação exemplifica como configurar o ambiente, conectar-se a um banco de dados PostgreSQL, implementar repositórios reativos e criar endpoints para operações de criação, leitura, atualização.
- Host: GitHub
- URL: https://github.com/feltex/demo-webflux
- Owner: feltex
- Created: 2024-06-06T20:48:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-07T14:33:58.000Z (over 1 year ago)
- Last Synced: 2025-04-13T14:18:29.159Z (9 months ago)
- Topics: docker, docker-compose, java, java-21, lombok, postgresql, r2dbc, webflux
- Language: Java
- Homepage: https://www.youtube.com/feltexbr
- Size: 124 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# demo-webflux
Programação reativa com WebFlux e Spring-Boot.
Youtbe video: https://youtu.be/q79JzoXHVBU

## Required
- Java 21
- Maven
- Spring-Boot
## Dependencies
- webflux
- r2dbc
- postgresql
- lombok
## Aprenda um pouco sobre Programação Reativa
A programação reativa tem se tornado cada vez mais popular devido a várias vantagens que oferece no desenvolvimento de
software. Aqui estão algumas razões pelas quais você deve considerar o uso de programação reativa:
1. **Responsividade**: A programação reativa permite a criação de sistemas altamente responsivos, capazes de reagir a
eventos de forma eficiente e em tempo real. Isso é particularmente útil em aplicações que exigem atualizações
contínuas, como interfaces de usuário interativas, jogos e sistemas de monitoramento.
2. **Escalabilidade**: Sistemas reativos são mais fáceis de escalar horizontalmente, o que significa que você pode
adicionar mais recursos ao sistema (como mais servidores) para lidar com uma maior carga de trabalho. Isso é crucial
para aplicações que precisam suportar um grande número de usuários simultâneos.
3. **Facilidade de Gerenciamento de Estados**: A programação reativa facilita o gerenciamento de estados em aplicações
complexas. Com fluxos de dados assíncronos, você pode tratar mudanças de estado de maneira declarativa, tornando o
código mais intuitivo e menos propenso a erros.
4. **Tratamento Eficiente de Eventos Assíncronos**: Em ambientes onde há muitos eventos assíncronos (como cliques de
usuários, mensagens de rede, etc.), a programação reativa oferece uma maneira natural e eficiente de lidar com esses
eventos. Isso é feito através de construções como observáveis e fluxos de dados que propagam mudanças
automaticamente.
5. **Código Mais Limpo e Manutenível**: Ao usar programação reativa, o código tende a ser mais conciso e expressivo, o
que melhora a legibilidade e a manutenção. Em vez de lidar com callbacks e estados mutáveis de maneira imperativa,
você define como os dados fluem através do sistema, o que pode reduzir significativamente a complexidade do código.
6. **Integração com Tecnologias Modernas**: Muitas das tecnologias modernas e frameworks, como Angular, ReactJS e
bibliotecas como RxJS, são projetadas com paradigmas reativos em mente. Isso facilita a integração e o uso dessas
tecnologias no desenvolvimento de aplicações modernas.
7. **Melhor Manuseio de Erros**: A programação reativa oferece mecanismos robustos para tratar erros e exceções de forma
elegante e eficiente, permitindo que você defina estratégias de recuperação e ações corretivas sem espalhar lógica de
tratamento de erros por todo o código.
| **Característica** | **Programação Reativa** | **RestAPIs** |
|------------------------------|------------------------------------------------------------------------|-------------------------------------------------|
| **Fluxo de Dados** | Contínuo e assíncrono | Requisição-resposta (síncrono) |
| **Comunicação** | Bidirecional | Unidirecional |
| **Tratamento de Erros** | Centralizado e propagado ao longo do fluxo de dados | Individual por requisição |
| **Escalabilidade** | Alta, com fácil distribuição de carga | Depende da infraestrutura, pode ser limitada |
| **Complexidade** | Maior complexidade inicial, mais eficiente em longo prazo | Menor complexidade inicial, potencialmente menos eficiente em longo prazo |
Por essas razões, a programação reativa é uma escolha poderosa para desenvolver sistemas modernos, escaláveis e
responsivos. Ela não só melhora a eficiência do desenvolvimento como também a qualidade do produto final.