Skip to content

About

CRUD de usuários com Spring Boot 3, JPA, Lombok e Swagger

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

CRUD de Usuários - Spring Boot 3 + Lombok + Swagger

API REST para gerenciamento de usuários utilizando Spring Boot, JPA, Lombok e documentação Swagger.

Stack Tecnológica

  • Java 17
  • Spring Boot 3.5.9
  • Spring Data JPA
  • MySQL 8
  • Lombok
  • Springdoc OpenAPI 2.5.0
  • Maven

Funcionalidades

  • Criar usuário
  • Buscar usuário por email
  • Atualizar usuário por ID
  • Deletar usuário por email

Estrutura do Projeto

Arquitetura em camadas seguindo boas práticas:

src/main/java/com/edson/crud/usuario/
├── Application.java
├── config/
│   └── OpenApiConfig.java
├── controller/
│   └── UsuarioController.java
├── bussiness/
│   └── UsuarioService.java
├── dto/
│   ├── UsuarioRequestDTO.java
│   └── UsuarioResponseDTO.java
└── infrastruture/
    ├── entities/
    │   └── Usuario.java
    └── repository/
        └── UsuarioRepository.java

Camadas:

  • Controller: Endpoints REST, validações de entrada
  • Service: Lógica de negócio e regras de domínio
  • Repository: Acesso a dados via Spring Data JPA
  • DTO: Objetos de transferência de dados
  • Entity: Entidades JPA mapeadas para o banco

Configuração

Banco de Dados

Ajuste as credenciais em application.properties:

spring.datasource.username=root
spring.datasource.password=8880

O banco crud_usuario será criado automaticamente.

IntelliJ IDEA

  1. Instale o plugin Lombok
  2. Habilite Annotation Processing:
    • Settings → Compiler → Annotation Processors → Enable annotation processing
  3. Reimporte o projeto Maven

Executar

./mvnw spring-boot:run

Ou execute a classe Application.java no IntelliJ.

Documentação da API

Swagger UI: http://localhost:8080/swagger-ui.html

Endpoints

POST /usuario - Criar usuário

{
  "nome": "João Silva",
  "email": "joao@exemplo.com"
}

GET /usuario?email={email} - Buscar por email

PUT /usuario/{id} - Atualizar usuário

{
  "nome": "João da Silva",
  "email": "joao.silva@exemplo.com"
}

DELETE /usuario?email={email} - Deletar usuário

Tecnologias e Padrões

Lombok

Reduz boilerplate com anotações:

  • @Data: getters, setters, toString, equals, hashCode
  • @Builder: padrão builder
  • @RequiredArgsConstructor: injeção de dependência via construtor

Spring Data JPA

  • Repositories com métodos derivados
  • Transações com @Transactional
  • Configuração open-in-view=false

Swagger/OpenAPI

  • Documentação automática de endpoints
  • Interface interativa para testes
  • Configuração via OpenApiConfig

Autor

Edson Felix

About

CRUD de usuários com Spring Boot 3, JPA, Lombok e Swagger

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages