O que é, como surgiu e como funciona o Spring Boot ?

O Spring Boot facilita a criação de aplicações, onde é possível criar um projeto apenas com os componentes necessários, com pouca ou nenhuma configuração e simplesmente executar. Isso mesmo, “just run”.

Mas antes de abordarmos esse framework maravilhoso, vamos falar do Spring Framework para entendermos o por que efetivamente foi criado o Spring Boot.

O que é o Spring Framework?

O Spring é um framework java open source criado pela Pivotal para facilitar o desenvolvimento de aplicações corporativas, baseado nos padrões de projeto de inversão de controle e injeção de dependência.

O Spring framework foi criado devido os problemas que os desenvolvedores java enfrentavam ao criar uma aplicação corporativa J2EE. Um dos problemas era a necessidade de utilizar um servidor de aplicação robusto, entre muitos outros fatores.

Mesmo com todas as facilidades que o Spring Framework trouxe, surgiram novos problemas. A configuração era via xml, dessa forma se algo estivesse incorreto, era uma dor de cabeça para descobrir o que deveria ser corrigido.

Posteriormente as configurações foram aceitas de forma programática, algo que ajudou demais, pois em tempo de compilação é reportado o que esta incorreto.

De qualquer modo, ainda era necessário configurar o arquivo de dependências pom.xml, o arquivo de configurações para banco de dados, o arquivo web.xml e por fim o container web.

Então nasce o Spring Boot!

Em abril de 2014, após 18 meses de desenvolvimento, testes e amadurecimento, a Pivotal entrega o Spring Boot 1.0. Hoje, a ultima versão estável em produção é a 2.2.4 e necessita no minimo do Java 8.

O seu objetivo é claro: Facilitar o trabalho de configuração e proporcionar ao desenvolvedor que sua aplicação seja publicada o mais rápido possível.

O spring boot foi baseado no conceito convenção sobre configuração, portanto é necessário apenas selecionar quais módulos serão utilizados no projeto. Exemplo de módulos são: WEB, DevTools, Spring Batch, Spring Data JPA, entre muitos outros.

O spring boot faz toda a magia, deixando tudo configurado, com um servidor tomcat embarcado. Em contra partida, há a possibilidade de customizar o que for necessário posteriormente.

Como funciona o Spring Boot por baixo dos panos?

O Spring boot consegue fazer tudo isso, devido seus três pilares, são eles o Spring Boot Starter, Spring Boot AutoConfigurator e Spring Boot Actuator.

Spring Boot Starter

O Spring Boot Starter tem o objetivo de associar diversas dependências em apenas uma, a fim de deixar o arquivo pom.xml mais organizado. Um exemplo é o spring-boot-starter-web, dentro dessa dependência há as dependências spring-boot-starter, spring-boot-starter-tomcat, hibernate-validator, jackson-databind, spring-web e spring-webmvc. Podem ou não haver diversas outras dependências dentro das apresentadas anteriormente.

Agora pense em configurar tudo isso na unha, incluindo dependência por dependência no pom.xml, fora que ficaria extremamente verboso seu arquivo, não é?

Spring Boot AutoConfigurator

O Spring Boot AutoConfigurator é o responsável por realizar as configurações da aplicação, incluindo as anotações necessárias para que a aplicação execute corretamente. Um exemplo é a anotação @SpringBootApplication presente na classe de inicialização do projeto.

Spring Boot Actuator

O Spring Boot Actuator fornece recursos de monitoramento, auditoria, healthcheck, provisionamento de endpoints, entre outros afazeres.

Um exemplo prático é o momento que o AutoConfigurator expõe o servidor web no localhost porta 8080. O Spring Boot Actuator que provisiona esta configuração no servidor web.

Criando um projeto Spring Boot

A Pivotal disponibiliza, duas formas rápidas e práticas para criar seu projeto Spring Boot. Pode ser realizado pelo Spring Initializr ou por meio da IDE Spring Tool Suite, desenvolvida em cima do Eclipse.

Spring Initializr

Basta acessar https://start.spring.io/ e selecionar as configurações que quer no seu projeto. O maior ponto de atenção vai para o campo “dependencies”, onde é possível selecionar os módulos starters que farão parte do projeto.

Após selecionar tudo, basta clicar no botão “Generate” que fica na parte inferior da pagina e importar o projeto na sua IDE de confiança… rsrssrsrs.

IDE Spring Tool Suite

Após iniciar a IDE, clique em File -> New -> Spring Starter Project, preencha os campos necessários e após o next, é possível selecionar os módulos starters. Depois disso é Finish and enjoy!!!

O poder do Spring Boot DevTools

O Spring Boot DevTools é um dos projetos starter que mais traz produtividade para o desenvolvedor. Caso seja feita qualquer alteração em suas classes e o container esteja em modo debug, a mesma é aplicada sem a necessidade de reiniciar o container manualmente.

Outra função do DevTools, é realizar configurações especificas para o ambiente de desenvolvimento, por exemplo não deixar que o cache lhe atrapalhe durante seus desenvolvimentos ou testes.

Epilogo

Bom, esse artigo ficou meio grandinho, mas acredito que é o necessário para entender sobre o Spring Boot e de quebra, conhecer também o Spring Framework. Agora é possível trocar umas figurinhas com o(a) coleguinha desenvolvedor(a) que senta ao lado no trabalho ou mesmo na faculdade.

Está afim de estudar linguagens e tecnologias presentes no ecossistema do desenvolvedor java gratuitamente? Se sim, acesse o link do post a seguir, lá apresento 5 sites fantásticos que nos proporcionam isso. Segue o link: https://www.devjava.com.br/sites-para-o-desenvolvedor-java-estudar-de-graca/

Muito obrigado por estar aqui, siga e curta nossas redes sociais e espalhe essa mensagem.

Sites para o(a) desenvolvedor(a) Java estudar de graça.

Como forma de agradecer a marca dos 200 inscritos na página do facebook, preparei uma listinha com alguns sites onde se pode estudar online e de forma gratuita as linguagens e tecnologias voltadas para o(a) desenvolvedor(a) java.

Por serem gratuitos, alguns cursos são mais introdutórios, todavia é possível encontrar muita coisa boa. A grande vantagem dessa lista, é que a maioria disponibilizam o certificado de conclusão com carga horária.

Dessa forma, vamos parar de enrolação e bora pra listinha. Os links estão nos títulos com o nome de cada site:

School Of Net

É uma plataforma de ensino que possui assinatura anual, mas disponibiliza diversos cursos e conteúdos gratuitos, entre eles cursos de Java, android, Angular, Git, HTML, Javascript, entre outros.
Caso queria assinar o plano anual e ter acesso a todo o conteúdo, é possível por esse link .

Digital Innovation One

Diferente do anterior, esse site possui todo conteúdo gratuito, desde cursos, a formações. Possui cursos de Java, Node.js, Javascript, ReactJs, PHP, Python, entre outros, e na conclusão emite certificado.

Loiane.Training

Disponibiliza um curso completo de Angular 2~9 do básico ao avançado. Estrutura de dados, Java, Cordova entre outros. Além de emitir certificado de conclusão.

RocketSeat

Plataforma com cursos introdutórios de Javascript, Node.js, ReactJs e React Native. De tempos em tempos realizam a semana OmniStack que é uma maratona de uma semana desenvolvendo um projeto Back-end, front-end e mobile com a stack em questão.

4Linux

Cursos totalmente gratuitos sobre HTML5, Developer, Linux, devops e big data essencials.

Além desses, há muitos outros que separei e numa próxima publicação compartilharei. Caso saiba de mais sites, deixe seu comentário logo abaixo, vou curtir trocar conhecimento contigo.

Você conhece a maquina virtual Open Source desenvolvida pela oracle que compila sua aplicação nativamente para a plataforma que deseja realizar deploy? Acesse: https://www.devjava.com.br/lancado-a-versao-20-0-0-da-graalvm/

Lançado a versão 20.0.0 da GraalVM

Nessa terça feira dia 18/02/20, a equipe da GraalVM disponibilizou sua versão 20.0.0. Plataforma Poliglota, que compila seus programas em imagens nativas reduzindo drasticamente o tempo de start e o consumo de memória.

O que é a GraalVM?

A GraalVM é uma máquina virtual universal Open Source criada pela Oracle, que executa aplicativos escritos em JavaScript, Python, Ruby, R, linguagens que já rodam na JVM, como Java, Scala, Groovy, Kotlin, Clojure e linguagens baseadas em LLVM, como C e C ++.

A GraalVM remove o isolamento entre linguagens de programação e permite a interoperabilidade em um tempo de execução compartilhado. As imagens podem ser executadas standalone ou nos contextos do OpenJDK, Node.js ou Oracle Database. Essa interoperabilidade permite desenvolver em java e acessar funcionalidades de outras linguagens.

Abaixo, gráficos de tempo de start e utilização inicial de memória das imagens nativas compiladas pela GraalVM. Os programas foram desenvolvidos respectivamente com os frameworks voltados para microserviços Helidon, Micronaut e Quarkus.

Tempo de start de microserviços Java
Memória utilizada inicialmente com microserviços Java

O que mudou nessa nova versão?

A versão 20 aprimora significativamente os builds da GrallVM para plataforma Microsoft. O suporte permanece experimental, no entanto, as compilações realizadas no Windows, agora contêm o “gu”, que é um utilitário funcional para instalar os componentes. A Engine do JavaScript e o Node.js foram incluídas na distribuição voltada para Windows. O engine JavaScript foi atualizada e agora é compatível com Node.js 12.15.0. O toolchain agora é baseado na versão 9.0.0 do interpretador LLVM suportando novas libs.

Mais sobre a GraalVM

A GraalVM foi apresentada pela Oracle no meio de Abril de 2018 e a sua versão 1.0 foi lançada para Linux e Mac. Como dito anteriormente, já há a versão para plataforma windows, mas com suporte experimental.
Na versão atual, a Community Edition GraalVM é baseada no OpenJDK 1.8.0_242 e no OpenJDK 11.0.6. Já a Enterprise Edition é baseado no 1.8.0_241 e 11.0.6 do JDK.

Caso queira saber mais e começar a utilizar, acesse https://www.graalvm.org/