Spring Boot — Como criar uma aplicação do zero — Parte 1

Marcelo Carvalho
5 min readMay 30, 2018

--

Quem vem trabalhando com Java nos últimos anos sabe a dificuldade que é, sem ajuda de alguma ferramenta, criar um projeto do zero. Ainda mais quando esse projeto depende de muitas bibliotecas, configurações, etc.

O pior de tudo era quando você queria apenas criar aquele projetinho pra testar algo novo que estava aprendendo ou para aquela ideia que você gostaria de ver funcionando e passava 2 dias só pra configurar o tal projeto. Um saco!

Eu antigamente, tinha no meu github, alguns projetos pré-configurados. Por exemplo, um projeto com Spring + Spring MVC + JPA, outro com JSF2 + Hibernate… E assim por diante.

Para nossa sorte, o pessoal da Spring pensou nisso e desenvolveu o Spring Boot e conseguiu mudar (e muito) o cenário acima. Aliás, saiu melhor do que eu imaginava.

Spring Boot, o que é?

Resumidamente, é uma coisa linda! 😄

Brincadeiras a parte, o Spring Boot não apenas ajuda você a escolher o que você irá usar no seu projeto, como ele garante que as versões sejam compatíveis com o restante das bibliotecas. Ele também te ajuda com as configurações, ou seja, uma configuração padrão para cada item que você escolheu.

Isso quer dizer que se você está interessado em criar uma aplicação web, ao escolher os módulos do seu projeto ele vai automaticamente fazer com que no instante após a criação, ele já seja 100% acessível pelo seu navegador. Se você adicionar a isso o módulo de JPA mais a biblioteca de algum banco de dados in memory, por exemplo o HSQLDB, além de subir sua aplicação ela também estará pronto para persistir dados usando JPA.

Bem legal! Você pode ver muito mais aqui na documentação oficial.

Como Funciona

O Spring Boot escaneia o classpath do projeto buscando por algumas bibliotecas, dependendo da biblioteca que ele encontrar ele aplica um configuração padrão.

Por exemplo, se ele encontra as bibliotecas do Spring JPA e de algum banco de dados ele já sobe aquelas configurações padrões que todos nós vemos nas documentações oficiais como: nome de usuário do banco, endereço, porta, senha, driver e tudo mais. Se ele encontra as biblioteca do Spring Web: todas as configurações, locais das páginas web, container, porta… Serão criadas.

Resumidamente, é isso aí.

E por onde começar

Existem várias formas de se criar um projeto com Spring Boot. Você pode fazer “na mão”, pode-se usar o Spring Boot pela linha de comando, uma IDE ou, que eu prefiro, utilizar o Spring Initializr.

Spring Initializr

A interface é bem simples e acho que não é necessário muita explicação. Existe a versão “advanced” mas é desnecessário para esse início. Caso você esteja utilizando o IntelliJ, ele fornece uma opção para se criar um projeto utilizando o Spring Initializr, o que pra mim é uma coisa muito boa.

Nosso Projeto

Bom! Então vamos lá. Eu vou utiliza o Gradle para gerenciar meu projeto (você pode usar o Maven sem problemas), vou usar Java, mas também à opção de Groovy e Kotlin, a versão do Spring Boot será a 2.0.2. Quanto às informações do nosso projeto no Group eu vou colocar com.mvalho.medium.example e o nome do nosso artefato será hello. Não usaremos nenhuma dependência por enquanto. Agora é só clicar no botão Generate Project.

Aviso! Estarei a partir daqui, partindo da premissa de que você esteja familiarizado com Java e o básico de linha de comando para trabalhar com Gradle. Nesse exemplo utilizaremos a versão 8 do Java, Gradle e o Git Bash.

Estrutura básica de um projeto criado pelo Sprint Boot Initializr.

Certo, vamos aos pontos importantes dessa estrutura. Vista do ponto de tudo ter sido criado pelo Spring Boot Initializr.

Foi automaticamente criado uma main class que será a classe usada para subir toda a aplicação com o Spring Boot, ela se chama HelloApplication.java e é anotada com @SpringBootApplication essa anotação diz ao Spring Boot que essa classe deverá ser usada como base para configurar toda nossa aplicação ela seria uma junção de algumas anotações usadas pelo Spring para configurar uma aplicação.

Uma test class para nossa main class, que por convenção leva o nome da classe+Test e o arquivo application.properties. Esse arquivo de propriedades é bem importante para aplicação, pois é nele que colocaremos alguma configurações. Esse arquivo também pode ser substituído por um arquivo YAML, o Spring Boot vai reconhecê-lo caso você mude a extensão de .properties para .yml.

As duas classes de test e principal foram criadas dentro de uma estrutura de pastas, que é comumente usada por quem desenvolve em Java. Então aquela tarefa de sempre criar a estrutura básica de pastas, já é feita pelo Spring Initializr.

O Spring Boot vai sempre criar a main class com o <nome do seu artefato> + Application.java. No nosso caso, o artefato se chama Hello, logo o nome de nossa main class será HelloApplication.java.

Será Que Funciona?

Para testarmos se está tudo ok, vamos fazer algo bem simples. Primeiro vamos editar o arquivo HelloApplication.java e deixaremos como na imagem abaixo.

Como ficará nossa classe HelloApplication.java

O que fizemos foi, primeiro adicionamos os imports para a interface CommandLineRunner e a anotação @Bean.

import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean

Depois criamos um método que retornará uma implementação da interface CommandLineRunner, essa implementação é simples e como a interface contém apenas um método para ser implentado, foi feita usando lambda do Java 8, ela ira imprimir na linha de comando a frase “Funcionou!”.

Como eu usei o Gradle pra gerenciar minha aplicação, e caso você também tenha usado, você pode rodar o projeto usando o comando:

gradle bootRun

Se estiver usando Maven:

mvn spring-boot:run

Nossa Aplicação Rodando.

Se tudo deu certo, após o Spring Boot chamar nossa HelloApplication class veremos no console a frase “Funcionou!”.

E assim, construímos uma aplicação Java sem problema algum e o melhor, de forma rápida. É claro que isso é bem simples e não teve dependência nenhuma adicionada ao projeto. Não seria tão difícil fazer isso de outra forma, mas nos próximos artigos, você verá como esse processo é facilitado.

Essa foi a primeira parte sobre Como Criar uma Aplicação do Zero com Spring Boot, a próxima será com JPA. O objetivo, como dito anteriormente, desses artigos é levantar aquela aplicação para testar algo que estamos aprendendo ou pra alguma Prova de Conceito (POC). Não será explicado à fundo como tudo funciona, aliás, nem sei se conseguiria haha.

Qualquer dúvida é só perguntar!

Atualização 1
A segunda parte desse artigo esta aqui Spring Boot — Como criar uma aplicação do zero — Parte 2 (Persistência)

--

--