Spring - Parte do Capítulo 1 (Agilidade e Qualidade de Projetos com Java XP Extreme Programming)


Spring um Framework Action Based

No guia Desenvolvendo aplicações Java WEB com JSF, demonstramos o uso dos frameworks como JSF e PrimeFace, que são considerados componentes bases (based), mas se tratando do Spring MVC, o fluxo de tabalho é diferente.

Num framework Action Based tudo fica separado de uma forma clara. Então imaginemos que o navegador faz um requisição ao framework que a recebe, e de acordo com o que for solicitado na barra do navegador ele fará a entrega para o controller específico para aquela solicitação. O controller repassa para o model que encaminha os dados para o banco de dados (consulta, saldo, regras de negócio, validação), depois de trabalhados o model, repassa de volta para o controller, que os encaminha novamente para o framework, é o spring MVC que vai solicitar a View adequada para responder tal solicitação no browser.  Confira o funcionamento Action Based na Figura 1.13 a seguir.

Figura 1.13 –  Spring MVC – Modelo Action Based.

Observe acima que foi o framework mandou os dados para View[1]. Como não é o controller que envia as informações trabalhadas para a View, passamos a ter muita flexibilidade para trabalha-los. Assim que os dados chegarem na View, poderemos usar HTML, JavaScript, jQuery e CSS, para trata-los. Uma das desvantagens do controller enviar os dados para o framework, é que não conseguimos criar componentes Java para trata-los.

Vantanges e Desvantagens

O uso do Spring nos traz inúmeros benefícios mas também tem uma compensação. Confira a seguir:

·         Vantagem – Os  dados são enviados do controller para o framework que procura a View adequada, gerando um flexibilidade maior, facilitando inclusive modificações no código no futuro;

·         Desvantagem – Não conseguimos criar componentes controlados pelo Java. Também seremos obrigados a conhecer mais sobre HTML, JavaScript e CSS, para criar os componentes a serem trabalhados.

 

O Spring Boot

O Spring Boot torna muito mais facil o gerenciamento de aplicações desenvolvidas para Spring. Com ele, o processo de geração de um projeto de software é muito reduzido, dipensando a geração de quase todos os arquivos de configuração necessários para uma aplicação rodar, pois ele fará todo esse trabalho automaticamente. Restando para nós coisas simples como uma pequena anotação no máximo, para que algo como um banco de dados funcione.

Um dos debates mais recorrentes dentro da comunidade de desenvolvedores  na indústria, é o tempo que se perde na geração de um projeto. Foi daí que criou-se um tipo de template (uma configuração default), que facilita a geração do projeto com menos configuração. Capaz de entregar a aplicação praticamente pronta, e assim ser modificada somente onde existe realmente necessidade. Como numa configuração do de um banco de dados (citado anteriormente), ou até mesmo de um container como o Tomcat, por exemplo. Imagine que a configuração já estará pronta, e a execução será muito rapida. O programador não perde tempo nem para fazer o deploy da aplicação. Tudo é feito pelo Spring Boot, muito rápido e automático.

Recursos Spring Boot

Dentre seus principais recursos podemos citar:

·         A criação de aplicativos Spring totalmente autônomos;

·         Depoly e execução do Container,  sem necessidade de implantar arquivos WAR[2];

·         Disponibilidade das dependências/bibliotecas 'iniciais' de forma automática, para que a aplicação possa rodar sem problemas;

·         Flexibilidade para modificar as bibliotecas de terceiros sempre que necessário;

·         Dados obtidos através de métricas, verificações de integridade e configuração externalizada, fornecidos para auxiliar na produção;

·         Dispensa qualquer geração de arquivos de configuração XML ou de código-fonte para a execução inicial do projeto.

No ato da geração deste guia o Spring Boot se encontrava na versão 2.3.4.RELEASE (<https://spring.io/projects/spring-boot#learn>).



[1] View – termo comum para se referir a uma página HTML, XHMTL, JSP, etc, numa aplicação WEB.

[2] Arquivos WAR – São arquivos finais, gerados para fim de distribuição do projeto de software em Java.

Comentários

Postar um comentário