Mayko Costa
Mayko Costa10/06/2024 23:54
Compartilhe

Frameworks Java: Transforme Seus Projetos com Poderosas Ferramentas do ecosistema Java.

  • #Java

Introdução aos Frameworks Java

No desenvolvimento de software, os frameworks são ferramentas indispensáveis. Eles oferecem soluções prontas para desafios comuns em desenvolvimento de sistemas. Acelerando a produção, diminuindo a curva de aprendizado, aumentando a reciclagem de código e melhorando a qualidade do código. A vantagem do uso de framework é em incorporar práticas de mercado em áreas como segurança, teste, padrão de projeto e estruturas de dados. Neste artigo, exploraremos alguns dos principais frameworks Java: Spring, Hibernate, Quarkus, Struts, JSF, Grails, Vaadin e Blade.

________________________________________

Padrão MVC: Uma breve explicação sobre este padrão de projeto que é utilizado em diversos frameworks java.

Como este padrão de projeto é comum em diversos frameworks Java foi decidido colocar uma breve explicação sobre ele.

O MVC ( Model, View e Controller ) é um padrão de projeto de software que separa o sistema em 3 camadas Model ( Modelo ), View ( Visão ) e Controller ( Controle ). Onde só a camada Visão é visível ao usuários final. Vou descrever abaixo como cada camada funciona:

• Modelo: É a camada que é responsável por acessar os dados vindos de diversas fontes . O case mais conhecido é o banco de dados.

• Visão: É a camada responsável pela estrutura que aparece para o usuário final. É o que é exibido pelo Browser.

• Controle: É a camada que faz a transmissão, validação e controle dos dados entre a camada de Visão e a camada de modelo. O dado nunca deve trafegar direto da camada de visão para as classes modelo. Isto geraria problemas de código dificultando a manutenção do código, reutilização de código e poderá ter falhas de segurança.

________________________________________

Spring: O Pioneiro da Injeção de Dependência

O Spring é um dos frameworks mais populares e amplamente utilizados no mundo Java. Ele facilita a criação de aplicativos complexos com sua arquitetura baseada em componentes modulares.

• Injeção de Dependência: Reduz o acoplamento entre componentes.

• Spring Boot: Criação rápida de aplicativos stand-alone. Para reduzir o tempo de configuração de ambiente tanto fora quanto na nuvem. Sistema web ou API( Application Interface Programming ) foi criado o Spring Boot.

• Spring MVC: Suporte completo para desenvolvimento web. 

• Spring Security: Ferramentas robustas para autenticação e autorização. Ferramentas testadas por profissionais de segurança para corrigir e testar quaisquer vulnerabilidades.

Conclusão: A utilização de Spring pode aumentar a eficiência e qualidade de projetos Java devido à sua flexibilidade e extensibilidade. Este framework pode ser utilizado tanto em aplicação em servidores standalone quanto na nuvem. Sendo utlizado amplamente para os mais diversos projetos de software.

 image

Hello world Spring Boot.

________________________________________

Hibernate: Simplificando o Mapeamento Objeto-Relacional

Hibernate é um framework para mapeamento objeto-relacional (ORM), que facilita a manipulação de dados entre um banco de dados relacional e a aplicação Java. 

• Object-Relational Mapping: ( ORM ): Evita a escrita de código SQL manual.

• Cache de Segundo Nível: Melhora a performance.

• Hibernate Query Language ( HQL ): Uma linguagem de consulta orientada a objetos. A escrita de query fica separada do banco de dados conectado.

• Integração com Spring: Facilita ainda mais a gestão de transações e sessões. Já é integrado ao Framework Spring.

Conclusão: O uso de Hibernate pode reduzir significativamente o tempo de desenvolvimento ao gerenciar a persistência de dados de forma eficiente. Geração de SQL mais otimizado e evita problemas de portabilidade entre bancos. Como o Hibernate converte as queries para o formato do banco conectado. Evita ter que reescrever as queries em necessidade de migração.

________________________________________

Quarkus: Otimizando Aplicações Java para Nuvem

Quarkus é um framework open source, moderno criado para otimizar aplicações Java na era da computação em nuvem. Este framework é nativo da nuvem. Por isto roda direto em contêineres de forma nativa no Kubernetes. 

• Startup Rápido: Reduz o tempo de inicialização.

• Consumo de Memória: Baixo uso de recursos.

• Kubernetes-Native: Facilita a implantação em ambientes de contêineres.

• Extensões: Suporte a várias tecnologias modernas como Kafka e OpenShift.

Conclusão: Quarkus é ideal para microserviços e funções serverless devido à sua performance e integração nativa com a nuvem. Agilizando o desenvolvimento de projetos no padrão de microserviços.

package org.acme;

import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello")
public class GreetingResource {

  @Inject
  GreetingService service;

  @GET
  @Produces(MediaType.TEXT_PLAIN)
  @Path("/greeting/{name}")
  public String greeting(String name) {
      return service.greeting(name);
  }

  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String hello() {
      return "Hello from Quarkus REST";
  }
}

Hello World com Quarkus.

________________________________________

Struts: Desenvolvimento Web Simplificado

Struts é um framework open source, robusto para o desenvolvimento de aplicações web baseadas em MVC. Este framework utliza tecnologias como 

• Action Classes: Gerencia as ações do usuário. Mapeia as ações do usuário no formulário ( Visão ) e coleta a resposta que vem da consulta do banco de dados. Assim como a camada de controle.

• Tag Libraries: Facilita a criação de interfaces de usuário. E vincula formulários através de links criados com as actions.

• Validação: Framework integrado para validação de dados. Com este framework é possível tornar um campo obrigatório, explicitar tipo de dado que o campo funciona e outros usos.

• Interceptors: Permite adicionar funcionalidades antes ou depois de uma ação ser executada. Assim podendo alterar o estado final do componente de acordo com as necessidades do cliente.

Referência: Struts tem sido uma escolha popular para aplicações web devido à sua estrutura bem definida e extensível. Segundo Alexandro o framework foi concluído em 2001 foi considerado padrão de mercado.

________________________________________

JSF — Java Server Faces: Componentização de Interfaces Web

Java Server Faces (JSF) é um framework Java para construção de interfaces de usuário baseadas em componentes para aplicações web.Roda em lado servidor.

• Componentes Reutilizáveis: Facilita a criação de UIs ricas. Diversos componentes

• Facelets: Motor de templates para criar views.

• Integrado ao Java EE: Funciona bem com outras tecnologias Java.

• Event Handling: Mecanismo robusto para manipulação de eventos.

Referência: JSF é ideal para grandes aplicações empresariais que requerem interfaces complexas e robustas.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

<head>
  <title>Listagem de Docentes</title>
</head>
<body>

<h3>Docentes Cadastrados</h3>

<h3>
        <h:form>
                    <h:commandLink value="+ Novo Docente" action="#{docenteController.adicionarForm}"/>
        </h:form>
</h3>

<h4><h:outputLabel id="oplMensagem" value="#{docenteController.msg}"/></h4>

<h:dataTable value="#{docenteController.listaDocentes}" var="docente" border="1">

        <h:column>
                    <f:facet name="header">Nome</f:facet>
                    #{docente.nome}
        </h:column>

        <h:column>
                    <f:facet name="header">Matricula</f:facet>
                    #{docente.matricula}
        </h:column>

        <h:column>
                    <f:facet name="header">Titulação</f:facet>#{docente.titulacao}
        </h:column>

        <h:column>
                    <f:facet name="header"> </f:facet><h:form><h:commandLink action="#{docenteController.excluirDocente}" value="Excluir"/></h:form>
        </h:column>

</h:dataTable>

</body>
</html>

Código simples utilizando JSF.

________________________________________

Grails: Agilidade no Desenvolvimento com Groovy

Grails é um framework que utiliza a linguagem Groovy e facilita o desenvolvimento ágil de aplicações web.

• Code Convention over Configuration: Menos configuração, mais convenção.

• Plug-ins: Ampla gama de plugins para funcionalidades adicionais.

• Scaffolding: Geração automática de código para operações CRUD.

• Integração com Spring e Hibernate: Tira proveito dos melhores recursos desses frameworks.

Referência: Grails acelera o desenvolvimento de aplicações web com uma curva de aprendizado rápida e poderosa integração com ferramentas Java.

________________________________________

Vaadin: Interfaces Ricas com Java

Vaadin é um framework que permite o desenvolvimento de interfaces de usuário ricas diretamente em Java.

• Component-Based: UI baseada em componentes Java.

• Binder: Facilita a ligação entre dados e componentes.

• Responsive Design: Ferramentas para criar interfaces responsivas.

• Server-Side Architecture: Lógica de UI e backend unificados.

Referência: Vaadin é ideal para aplicações empresariais que requerem interfaces de usuário interativas e ricas.

________________________________________

Blade: Minimalismo e Performance

Blade é um microframework para Java que foca na simplicidade e alta performance.

• Minimalista: Estrutura leve e fácil de usar.

• Roteamento Simples: Gerenciamento de rotas de forma intuitiva.

• Modular: Fácil de estender com plugins.

• Deploy Rápido: Tempo de inicialização rápido.

Referência: Blade é perfeito para microserviços e pequenas aplicações web onde simplicidade e velocidade são cruciais.

________________________________________

Conclusão:

Os frameworks Java são ferramentas essenciais que podem transformar a forma como você desenvolve aplicações. De grandes sistemas empresariais, pequenas aplicações web à microserviços ágeis, há um framework java para cada necessidade. Escolha o que melhor se adapta ao seu projeto e potencialize seu desenvolvimento com essas poderosas ferramentas.

Referências:

Spring.io , Documentação oficial do Java Spring. Disponível em: <https://spring.io/why-spring>

Quarkus.io , Documentação oficial do Quarkus. Disponível em: https://pt.quarkus.io

Hibernate.org, Documentação oficial do Hibernate. Disponível em: < https://hibernate.org>

Oracle, < https://www.oracle.com/java/technologies/javaserverfaces.html >

Higor, Introdução ao Hibernate Query Language (HQL) .

< https://www.devmedia.com.br/introducao-ao-hibernate-query-language-hql/29581 >

Alexandro, Fundamentos do Java Struts. < https://www.devmedia.com.br/fundamentos-do-java-struts/7238 >

blog.back4app, Top Frameworks para Java. < https://blog.back4app.com/pt/frameworks-java/>

spigandoeaprendendo, Tutorial do Framework de validação do Struts2 com Exemplo. < https://spigandoeaprendendo.wordpress.com/2014/02/17/parte-3-tutorial-do-framework-de-validacao-do-struts2-com-exemplo/ >

Compartilhe
Comentários (2)
Valdir Alves
Valdir Alves - 11/06/2024 08:37

Vamos nos Aprofundar no Assunto Testes de API - ferramentas essenciais

Kassadev
Kassadev - 11/06/2024 05:46

Muito bom, Obrigado pelo conteúdo !