Este é um projeto de um sistema de gerenciamento de biblioteca, desenvolvido em Java com o framework Spring Boot.
- Java 17: Versão da linguagem de programação.
- Spring Boot 3.3.0: Framework principal para o desenvolvimento da aplicação.
- Spring Web: Para a criação de APIs REST e aplicações web.
- Spring Data JPA: Para a persistência de dados em um banco de dados relacional.
- Spring Security: Para a autenticação e autorização de usuários.
- Thymeleaf: Motor de templates para a renderização de páginas HTML no lado do servidor.
- MySQL: Banco de dados relacional para o armazenamento dos dados.
- Liquibase: Para o versionamento e gerenciamento de alterações no esquema do banco de dados.
- Maven: Ferramenta de automação de compilação e gerenciamento de dependências.
- Docker: Para a criação de ambientes de desenvolvimento e produção em contêineres.
- Lombok: Para a redução de código boilerplate (getters, setters, construtores, etc.).
- MapStruct: Para a geração de mapeamentos entre objetos de diferentes camadas da aplicação.
- SpringDoc (Swagger UI): Para a documentação e teste interativo das APIs REST.
- JDK 17 ou superior
- Maven 3.6 ou superior
- Docker e Docker Compose
-
Clone o repositório:
git clone <url-do-repositorio> cd sistema-biblioteca
-
Inicie o banco de dados com Docker Compose:
O serviço do MySQL é definido no arquivo
docker-compose.yml. Para iniciá-lo, execute o seguinte comando na raiz do projeto:docker-compose up -d
Isso irá iniciar um contêiner Docker com o MySQL na porta
3306. As configurações do banco de dados são:- Database:
biblioteca - Usuário:
user - Senha:
password - Senha do root:
root
- Database:
-
Configure a aplicação:
As configurações da aplicação, como a conexão com o banco de dados, estão no arquivo
src/main/resources/application.properties. Verifique se as configurações correspondem às do serviço do MySQL.Exemplo de
application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/biblioteca spring.datasource.username=user spring.datasource.password=password spring.jpa.hibernate.ddl-auto=none spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
-
Execute a aplicação:
Você pode executar a aplicação de duas maneiras:
-
Através da sua IDE: Execute a classe principal
SistemaBibliotecaApplication.java. -
Através do Maven:
mvn spring-boot:run
A aplicação estará disponível em
http://localhost:8080. -
O projeto inclui um Dockerfile que define os estágios de build e execução da aplicação em um contêiner.
-
Construa a imagem Docker:
docker build -t sistema-biblioteca . -
Execute o contêiner:
docker run -p 8080:8080 --name sistema-biblioteca-app --link mysql-biblioteca:mysql -d sistema-biblioteca
Este comando executa a aplicação e a conecta à rede do contêiner do MySQL.
A documentação da API está disponível através do Swagger UI. Após iniciar a aplicação, acesse o seguinte endereço no seu navegador: