O que é o Quarkus?
Quarkus é um framework open-source para construir aplicações Java nativas para a nuvem, com foco em otimização de desempenho e redução no consumo de memória. Ele foi criado para rodar de forma eficiente em ambientes de containers e servidores em nuvem, como Kubernetes e OpenShift. O Quarkus combina várias bibliotecas e tecnologias populares da stack Java, como Hibernate, RESTEasy e CDI, oferecendo suporte a aplicações Java tradicionais (JVM) e aplicações nativas (via GraalVM).
Algumas das principais características do Quarkus incluem:
- Baixa latência e alto desempenho: Ele reduz significativamente o tempo de inicialização e o uso de memória, especialmente em comparação com frameworks Java tradicionais, como Spring ou Java EE.
- Desenvolvimento otimizado: O Quarkus oferece um modo de desenvolvimento em que as mudanças no código são automaticamente refletidas na aplicação sem precisar reiniciar o servidor (hot-reload).
- Suporte para Kubernetes e nuvem: Ele foi projetado para ser integrado nativamente com o Kubernetes, oferecendo uma experiência simplificada para desenvolvimento e execução de microsserviços em ambientes de nuvem.
- Compatibilidade com GraalVM: GraalVM permite a compilação de aplicações Java em binários nativos, o que significa tempos de inicialização mais rápidos e menor consumo de recursos.
- Stack full Java: Embora seja otimizado para microsserviços e arquitetura nativa da nuvem, ele ainda oferece suporte total a muitas das ferramentas e bibliotecas tradicionais da JVM, permitindo a adoção gradual.
Em resumo, o Quarkus é uma solução moderna para quem deseja construir microsserviços eficientes, com foco em escalabilidade e velocidade em ambientes baseados em nuvem.
Como configurar o Quarkus com o MongoDB
Para configurar o Quarkus com o MongoDB, você precisará seguir algumas etapas básicas para integrar o banco de dados no seu projeto. O Quarkus oferece extensões que facilitam essa integração, como a extensão MongoDB Panache, que simplifica as operações CRUD. Aqui está um guia passo a passo para configurar o Quarkus com MongoDB:
Passo 1: Criar um novo projeto Quarkus
Você pode criar um projeto Quarkus com o Maven ou Gradle. Aqui vamos usar o Maven como exemplo:
1 |
mvn io.quarkus:quarkus-maven-plugin:create -DprojectGroupId=com.example -DprojectArtifactId=quarkus-mongodb-demo -DclassName="com.example.demo.MongoResource" -Dpath="/mongo" |
Passo 2: Adicionar a dependência do MongoDB
Depois de criar o projeto, abra o arquivo pom.xml
e adicione as dependências do MongoDB e MongoDB Panache:
1 2 3 4 5 6 7 8 |
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-mongodb-panache</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-mongodb-client</artifactId> </dependency> |
Ou, você pode adicionar essas extensões automaticamente usando o seguinte comando no terminal:
1 |
mvn quarkus:add-extension -Dextensions="mongodb-panache" |
Isso adicionará a integração com MongoDB e o Panache para simplificar as operações.
Passo 3: Configurar a conexão com o MongoDB
Baixe o MongoDB para o seu computador https://www.mongodb.com/try/download/community e depois abaixe o https://www.mongodb.com/products/tools/compass para manipular os dados que estarão no seu pc.
Agora, configure as propriedades de conexão com o MongoDB no arquivo application.properties
(localizado na pasta src/main/resources
). Você precisará configurar o URI de conexão ao MongoDB:
1 2 3 |
quarkus.mongodb.connection-string = mongodb://localhost:27017 quarkus.mongodb.database = quarkusdb |
Passo 4: Criar uma entidade Panache
O Quarkus Panache simplifica o mapeamento entre documentos MongoDB e classes Java. Crie uma classe de entidade que represente um documento no MongoDB. Por exemplo, um documento de Person
:
1 2 3 4 5 6 7 8 9 |
package com.example.demo; import io.quarkus.mongodb.panache.PanacheMongoEntity; import org.bson.types.ObjectId; public class Person extends PanacheMongoEntity { public String name; public int age; } |
Essa classe herda de PanacheMongoEntity
, que simplifica as operações CRUD com MongoDB. O campo ObjectId
será gerado automaticamente como o ID do documento.
Passo 5: Criar um recurso REST para manipular os dados
Agora, crie um recurso REST que permita interagir com o banco de dados. No arquivo MongoResource.java
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.example.demo; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; @Path("/mongo") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class MongoResource { @GET public List<Person> listAll() { return Person.listAll(); } @POST public Response addPerson(Person person) { person.persist(); return Response.ok(person).status(201).build(); } @GET @Path("/{id}") public Person getPerson(@PathParam("id") String id) { return Person.findById(new ObjectId(id)); } @DELETE @Path("/{id}") public Response deletePerson(@PathParam("id") String id) { Person person = Person.findById(new ObjectId(id)); if (person != null) { person.delete(); return Response.noContent().build(); } return Response.status(404).build(); } } |
Esse recurso REST básico permite criar, listar, buscar e deletar Person
no MongoDB. Os dados são manipulados diretamente com métodos como listAll()
, persist()
e findById()
providos pela API do Panache.
Passo 6: Executar a aplicação
Execute esse comando para adicionar a dependência necessária.
1 |
mvn quarkus:add-extension -Dextensions="io.quarkus:quarkus-rest-jackson" |
Com tudo configurado, você pode executar o Quarkus em modo de desenvolvimento usando o seguinte comando:
1 |
mvn quarkus:dev |
O Quarkus inicia a aplicação no modo dev com recarregamento automático. Você pode acessar o recurso REST no endereço http://localhost:8080/mongo
.
Passo 7: Testar a aplicação
Agora, você pode testar a API com ferramentas como Postman ou curl. Por exemplo, para adicionar uma nova pessoa:
1 2 3 4 |
curl -X POST "http://localhost:8080/mongo" \ -H "Content-Type: application/json" \ -d '{"name":"John", "age":30}' |
Para listar todas as pessoas:
1 |
curl -X GET "http://localhost:8080/mongo" |
Isso deve retornar todos os documentos do MongoDB na coleção Person
.
Se acessar essa url também consegue ver os resultados: http://localhost:8080/mongo
Conclusão
Com essas etapas, você configurou o Quarkus com MongoDB, usando a extensão MongoDB Panache para simplificar as operações de banco de dados. O Quarkus oferece uma maneira eficiente de criar aplicações modernas, otimizadas para a nuvem, com integração nativa com MongoDB.
Links
Como criar um aplicativo CRUD com MongoDB, Quarkus e GraalVM
Jornada Java: Do Zero ao Spring Boot com Aplicações Práticas
Deixe um comentário