
3 - Criando projetos
Olá pessoal! Nesta terceira etapa do tutorial de criando APIs com Spring Boot, iremos criar nosso primeiro projeto:
1º Com o Visual Studio Code aberto, vamos abrir a paleta de comandos, para isso no menu superior procure por Ver -> Paleta de comandos, caso o Visual Studio esteja em inglês procure por: View -> Command Palette.
O próximo passo é digitarmos o termo Spring e selecionar a opção: Spring Initializr: Create a Maven Project..., a imagem abaixo mostra como deve estar seu Visual Studio Code agora:

2º Agora precisaremos especificar a versão do Spring Boot, neste tutorial utilizo a versão 2.6.3, aconselho fortemente a deixar selecionada a primeira opção da lista de versões, pois é a versão mais estável do Spring Boot:

3º Podemos selecionar o tipo de linguagem que queremos desenvolver utilizando nosso Spring, para isso podemos escolher entre: Java, Kotlin e Groovy, selecione a opção Java e vamos em frente:

4º Nosso próximo passo é especificar o agrupamento para o projeto. A criadora do Java (Sun Microsystems) implementou um padrão para facilitar a localização de arquivos em projetos Java, seguindo as boas práticas é utilizado o prefixo do domínio da empresa, vamos utilizar de exemplo o meu site: https://www.ralflima.com, sendo assim poderia criar um pacote com a nomenclatura: com.ralflima.
Podemos implementar o nome do pacote, informando as iniciais de cada país, exemplo:
- Brasil: br.com.ralflima
- México: mx.com.ralflima
- Japão: jp.co.ralflima
É o mesmo padrão utilizado para acessar um site de determinado país, em nosso projeto iremos colocar o nome: br.com.projeto, o nome do agrupamento não irá interferir em nosso projeto, sendo assim fique à vontade para criar agrupamento que quiser. Importante que cada ponto será criada uma pasta, sendo assim haverá a pasta: br, dentro dela haverá a pasta com e em seguida uma outra pasta chamada projeto, em caso de dúvidas, observe a imagem abaixo:

5º Neste passo iremos especificar o id do projeto, que basicamente é o nome dele. Utilizei o nome: api, fique à vontade em utilizar um outro nome caso desejar:

6º Precisamos especificar o topo de empacotamente para o projeto, iremos utilizar o Jar, abaixo deixarei uma breve explicação entre os tipos JAR e WAR:
- Jar: Contêm todas as classes base para trabalhar com a linguagem Java.
- War: Contêm as classes base para trabalhar com Java e suporte para manipular servlets e arquivos JSP.

7º Será necessário informar a versão do Java, aconselho fortemente utilizar a mesma versão instalada em seu computador. Neste tutorial estava com o JDK 17 instalado, sendo assim a versão escolhida para gerar o projeto também foi a 17, caso o projeto seja gerado em uma versão diferente do JDK, pode resultar em erros de compilação.

8º Nossa última etapa é selecionar as dependências, que servem para especificarmos as funcionalidades que nossa aplicação terá, selecione as seguintes:
- Spring Boot DevTools: Configuração base do Spring, além de atualizar o servidor automaticamente sempre que algum arquivo for alterado.
- Spring Web: Responsável por criar aplicações RESTful, utilizando o Spring MVC.
Quando selecionadas as duas dependências, clique na opção: Selected 2 dependencies., espere um pouco e depois abra o projeto criado.

A estrutura de projetos em Spring Boot são baseadas nos seguintes arquivos e pastas:
- .mvn: Nesta pasta teremos as configurações para o funcionamento do Maven. Vale lembrar que o Maven é um gerenciado de dependências, com ele podemos gerenciar diversos complementos que o Spring pode utilizar nos projetos, como: Spring Security, conexões com bancos de dados, utilização de JPA (ORM), estrutura para APIs, JWT para trabalhar com tokens, entre outras dependências.
- src: É nesta pasta que você irá desenvolver toda a estrutura do projeto, além do projeto, você pode realizar algumas configurações no arquivo application.properties, como: conexões com banco de dados, alterar a porta de funcionamento, habilitar log de ações, entre outras funcionalidades.
- mvnw e mvnw.cmd: São arquivos de configuração do Maven.
- pom.xml: É considerado o "cérebro" do nosso projeto, pois ele terá todo o "conhecimento" necessário para realizarmos diversas funcionalidades em nossos projetos, como: conexões com bancos de dados, configuração de servidor, segurança de aplicações, envio de e-mails, entre outras ações. É neste arquivo que iremos especificar todas as dependências que desejamos utilizar nos projetos.
Ficou com alguma dúvida? Se não conseguiu executar algum dos passos acima, assista o vídeo abaixo:
Fonte utilizada para a criação desse tutorial: