Este projeto é uma aplicação web desenvolvida com Spring Boot e Spring MVC para gerenciar informações de professores. A aplicação permite realizar operações CRUD (Create, Read, Update, Delete) em uma base de dados de professores.
- Java - Linguagem de programação
- Spring Boot - Framework para desenvolvimento de aplicações Java
- Spring MVC - Framework web para criação de aplicações web
- Spring Data JPA - Para persistência de dados
- MySQL - Sistema de gerenciamento de banco de dados
- Docker Compose - Para containerização do banco de dados
- Thymeleaf - Template engine para renderização das páginas HTML
- ✅ Listar todos os professores
- ✅ Visualizar detalhes de um professor específico
- ✅ Criar novo professor
- ✅ Editar informações de professor existente
- ✅ Excluir professor
- ✅ Gerenciamento de status do professor (ATIVO, INATIVO, APOSENTADO, AFASTADO)
springmvc/
├── src/main/java/com/dev/gabriellucas/springmvc/
│ ├── Start.java # Classe principal da aplicação
│ └── professor/
│ ├── controllers/
│ │ └── ProfessorController.java # Controller REST
│ ├── entities/
│ │ └── Professor.java # Entidade JPA
│ ├── enums/
│ │ └── StatusProfessor.java # Enum para status
│ └── repository/
│ └── ProfessorRepository.java # Repository JPA
├── src/main/resources/
│ └── import.sql # Script de dados iniciais
└── compose.yaml # Configuração Docker Compose
O projeto utiliza MySQL executando em container Docker. A configuração está no arquivo compose.yaml
:
services:
mysql:
container_name: mysql_container
image: 'mysql:latest'
environment:
- 'MYSQL_DATABASE=springmvc'
- 'MYSQL_PASSWORD=admin'
- 'MYSQL_ROOT_PASSWORD=admin'
- 'MYSQL_USER=admin'
ports:
- '3360:3306'
- Java 17 ou superior
- Maven
- Docker e Docker Compose
-
Clone o repositório:
git clone <url-do-repositorio> cd springmvc
-
Inicie o banco de dados MySQL:
docker-compose up -d
-
Execute a aplicação:
mvn spring-boot:run
-
Acesse a aplicação:
- URL:
http://localhost:8080
- Endpoint principal:
http://localhost:8080/professores
- URL:
Campo | Tipo | Descrição |
---|---|---|
id | Long | Identificador único (auto-incremento) |
nome | String | Nome do professor |
salario | Double | Salário do professor |
statusProfessor | StatusProfessor | Status atual do professor |
ATIVO
- Professor em atividadeINATIVO
- Professor inativoAPOSENTADO
- Professor aposentadoAFASTADO
- Professor afastado
Método | Endpoint | Descrição |
---|---|---|
GET | /professores |
Lista todos os professores |
GET | /professor/new |
Formulário para criar novo professor |
POST | /professores |
Cria um novo professor |
GET | /professor/{id} |
Exibe detalhes de um professor |
GET | /professor/edit/{id} |
Formulário para editar professor |
POST | /professor/update/{id} |
Atualiza um professor existente |
GET | /professor/delete/{id} |
Exclui um professor |
A aplicação vem com dados pré-cadastrados definidos no arquivo import.sql
:
- João Silva - R$ 4.500,00 (ATIVO)
- Maria Oliveira - R$ 5.000,00 (APOSENTADO)
- Carlos Souza - R$ 4.000,00 (INATIVO)
- Ana Lima - R$ 5.500,00 (AFASTADO)
- Paulo Andrade - R$ 4.700,00 (ATIVO)
O projeto segue o padrão MVC (Model-View-Controller):
- Model: Entidade
Professor
e enumStatusProfessor
- View: Templates Thymeleaf (referenciados no controller)
- Controller:
ProfessorController
gerencia as requisições HTTP
- Porta do MySQL:
3360
(mapeada para3306
no container) - Base de dados:
springmvc
- Usuário:
admin
- Senha:
admin
- Implementar validação de dados
- Adicionar paginação na listagem
- Implementar busca e filtros
- Adicionar testes unitários
- Implementar autenticação e autorização
- Adicionar logs de auditoria
Este projeto é livre para uso educacional e desenvolvimento.
Desenvolvido por: Gabriel Lucas
Tecnologia: Spring Boot + Spring MVC