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

Frameworks Java: Transforme Seus Projetos com Poderosas Ferramentas do ecosistema 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 !