Projeto com infraestrutura base de um sistema de microserviços.
- Java 21
- Spring Boot 4.0.2
- Maven — gerenciamento de dependências e build
- Spring Cloud Gateway — API Gateway (roteamento, proxy reverso)
- Netflix Eureka Server — servidor de descoberta de serviços
- Netflix Eureka Client — registro dos microserviços no Eureka
- Spring Cloud OpenFeign — cliente HTTP declarativo (comunicação entre pagamento e pedidos)
- Spring Data JPA — acesso a dados
- Spring Web MVC — APIs REST
- Bean Validation — validação de entrada
- Flyway — migrações de banco (incl.
flyway-mysql) - MySQL — banco de dados (driver
mysql-connector-j)
- Lombok — redução de boilerplate (getters, setters, etc.)
- ModelMapper — mapeamento entre DTOs e entidades
- Resilience4j — resiliência (circuit breaker, retry, etc.) no serviço de pagamento
- Spring AOP — suporte a aspectos (usado com Resilience4j)
- Spring Boot Test — testes de aplicação
- Spring Boot Starters de teste — JPA, Flyway, Validation, WebMvc (test)
| Serviço | Função |
|---|---|
| server | Servidor Eureka — descoberta e registro de serviços |
| gateway | API Gateway — ponto único de entrada e roteamento |
| pedidos | Microserviço de gestão de pedidos |
| pagamento | Microserviço de pagamentos (integra com pedidos) |
-
Requisitos: Java 21, Maven, MySQL em execução.
-
Banco de dados: Crie os bancos e usuários necessários para os serviços pedidos e pagamento e configure as URLs em
application.propertiesde cada um. -
Ordem sugerida de subida:
- server (Eureka)
- gateway
- pedidos
- pagamento
-
Build e execução por serviço (exemplo):
cd server && mvn spring-boot:run cd gateway && mvn spring-boot:run cd pedidos && mvn spring-boot:run cd pagamento && mvn spring-boot:run
-
Consulte os
application.propertiesde cada módulo para portas e URLs do Eureka/MySQL.