Começando com SpringBoot 2

Hoje vamos criar uma aplicação Spring Boot 2 de forma bem didática e detalhada. Vamos expor um endpoint para nos dizer Hello World. É algo super simples e que em poucos minutos estará prontinho. Esse projeto será uma base para futuros projetinhos que temos em mente para o futuro do blog.

Nesse projeto utilizaremos as seguintes ferramentas e tecnologias:

  • IDE Spring tool Suite 4;
  • Spring Boot 2;
  • Spring Framework;
  • Maven;
  • Git;
  • Container Web tomcat.

Caso você seja novo no mundo da programação, vou deixar no final da matéria um pequeno dicionário técnico explicando alguns termos usados aqui. Surgindo alguma dúvida, não exite em me questionar nas redes sociais, caso eu não saiba algo de momento, correrei atrás da informação e aprenderemos juntos.

Não sabe o que é Spring Boot e pra que serve? Acesse esse link, nessa matéria explico o que é, como funciona e como surgiu o Spring Boot.

Criação do projeto

Podemos criar nosso projeto de duas formas, uma delas é utilizando o Spring Initializr. Para isso basta acessar o site https://start.spring.io/ e selecionar as configurações que quer em seu projeto, após clicar em generate e finalizar o download, basta importar o mesmo na IDE. 

Outra forma, que é como faremos nessa matéria, é criar nosso projeto pela IDE Spring Tool Suite, para isso, com a IDE aberta, basta clicar em File -> New -> Spring Starter Project  conforme imagem abaixo:

Preencha os campos abaixo, conforme o exemplo:

Selecione uma versão 2 do SpringBoot que não seja snapshot, inclua as dependências Spring WEB, Spring Boot DevTools e Spring Data JPA e clique em Finish.

Os projetos starters selecionados acima são para os fins descritos logo abaixo:

Spring WEB: É utilizado para criar aplicativos Web, incluindo RESTful, usando o Spring MVC. Usa o Apache Tomcat como o contêiner incorporado padrão

Spring Boot DevTools: Fornece reinicializações rápidas de aplicativos, LiveReload e configurações para melhorar a experiência de desenvolvimento.

Spring Data JPA: É utilizado para persistir dados em repositórios SQL com a API Java Persistence usando Spring Data e Hibernate.

A IDE realizará o build do projeto maven e as atualizações de todas suas dependências. Os pacotes do projeto e a classe que é usada para iniciar o aplicativo Spring ficarão similar a imagem abaixo:

Antes de Codar, precisamos fazer um leve ajuste no arquivo pom.xml. No momento da criação do projeto, declaramos que utilizariamos o Spring Data JPA, que sim, será útil nos projetos vindouros, mas para utilizar o mesmo, precisamos realizar configurações do datasource que não são o foco nesse momento, vamos comentar essa dependência como no exemplo apresentado abaixo e salvar o arquivo com Ctrl + S.

Agora sim, não demorou quase nada e já temos uma aplicação SpringBoot 2 que pode ser executada sem erros. Mas segura a emoção ai, rsrssrrs… por hora ela não faz nenhuma interação conosco. Para isso, vamos criar uma classe com o nome “HelloWorld” dentro do pacote br.com.devjava.helloworld. 

Com o cursor selecionando o pacote br.com.devjava.helloworld, pressionar Ctrl + N. Será aberta uma janela para selecionar o que de novo você quer criar, comece a escrever “C”, “L”, “A”, “S” … automaticamente é eliminado diversas opções, clique em Class e Next como na imagem abaixo:

Verifique se realmente o package está como br.com.devjava.helloworld. Preencha o nome da classe como HelloWorld e Finish.

Uma classe com o nome HelloWorld é criada. Acima do nome da classe utilizaremos as anotações @RestController e @RequestMapping(“/hello”). 

A anotação @RestController configura a classe como um Controller e que os métodos deverão retornar uma resposta HTTP, tornando-o possível trabalhar com serviços REST. Já a anotação @RequestMapping declara que a classe cuidará de solicitações da web e o parâmetro “/hello” define que qualquer ação desse controller deve preceder de /hello. Apenas como exemplo, as solicitações ou verbos do protocolo HTTP podem ser dos tipos GET, POST, PUT, DELETE, entre outros.

Posteriormente crie um método público do tipo String com o nome “sayHello”, esse método deve retornar a String “Hello from SpringBoot by DevJava”. Nesse método utilize a anotação @GetMapping, no caso, ela serve para especificarmos que esse método atenderá apenas o verbo GET do serviço /hello.

Sua Classe RestController deve se parecer com o exemplo abaixo: 

Feito isso, podemos entrar na classe HelloWorldApplication que possui o método main, clique com o botão direito em cima da classe, selecione Run As e depois Spring Boot App.

No console será exibido algo próximo a imagem abaixo:

Bazinga!!! Temos nosso App SpringBoot2 expondo o endpoint http://localhost:8080/hello. Acesse esse endpoint pelo navegador e verá a mensagem que configuramos ser apresentada.

Epilogo

Essa foi a nossa pequena aplicação em Spring Boot 2 apenas expondo um serviço, espero que tenha ficado bem detalhado e explicado, mas surgindo dúvida e ou sugestões, pode me contatar pelo campo de comentário logo abaixo ou trocar uma idéia comigo nas redes sociais.

Antes que eu me esqueça, disponibilizei o código desse projeto no meu GitHub pessoal, acesse: https://github.com/rafaelvcunha/HelloWorldSpringBoot2 

E como prometido, segue pequeno dicionário técnico:

IDE Spring tool Suite 4 é uma IDE desenvolvida em cima do Eclipse com algumas melhorias e plugins já instalados para o ecossistema Spring Framework.

Endpoint é a URL onde seu serviço pode ser acessado por uma aplicação cliente. 

Container Web é servidor web Java que atende aplicações web que utilizem Servlets e JSPs. 

Servidor de Aplicação: Além de possui o container web para atender  Servlets e JSPs, possui outros subsistemas para atender aplicações Java EE com EJBs, CDI, JMS entre outros. 

Canais do YouTube para o(a) desenvolvedor(a) Java estudar gratuitamente.

Como forma de agradecer a marca dos 700 inscritos na página do facebook, preparei uma listinha com alguns canais do Youtube onde se pode estudar gratuitamente, as linguagens e tecnologias presentes no ecossistema do(a) desenvolvedor(a) java.

Agradecemos demais a audiência que o blog e as redes sociais estão recebendo, isso nos deixa muito feliz e com energia pra disponibilizar mais e melhores conteúdos.

Vamos parar de enrolação e bora pra listinha. Os links estão nos títulos com o nome de cada canal:

Michelli Brito

O canal da Michelli Brito possui bastante conteúdo prático sobre o universo Spring. Há playlists sobre como criar um blog com Spring Boot e realizar deploy no AWS, outra playlist aborda como contruir uma API Rest com Spring Webflux e mongoDB, e outra ainda bem interessante trata de como realizar um deploy de um app spring Boot na IBM Cloud. Há ainda outras playlists disponíveis para conferir.

Alex – JDev Treinamento

O canal do Alex da JDev Treinamento possui playlists de cursos focados no javaEE, JSF, PrimeFaces, JSP, curso de Rest e RestFull, curso de AngularJs, além de dar dicas sobre carreira.

DevDojo

O canal possui a famosa série Maratona Java, com um total de 210 vídeos curtos e muito objetivos sobre fundamentos da linguagem Java. Há cursos de JSF, SpringBoot, TypeScript, Projetos práticos com JSF, CDI e Hibernate, entre outras tecnologias.

Curso em Vídeo

O canal do instrutor dos pequenos gafanhotos como carinhosamente ele se dirige aos seus alunos. O Gustavo Guanabara tem uma excelente didática e é super empenhado em sempre trazer mais e mais cursos para seus alunos, não é por menos que seu canal está com mais de um milhão de inscritos. Marca surpreendente para esse nicho. Lá ele fala sobre Java, python, javascript, HTML, WordPress, Linux e muito mais.

Loiane Groner

Assim como no site da loiane.training, há playlists dos cursos presentes no site como Angular 2~9 do básico ao avançado, estrutura de dados, Java, Cordova entre outros. Mas também há vídeos sobre atualizações das últimas versões do Java e Angular, dicas para desenvolvimento Java no Visual Studio Code, entre outros assuntos.

Bônus

Como bônus, separei também outros dois canais que não são referente a cursos, mas sobre gravações de meetups e lives que também abordam assuntos sobre o ecossistema do desenvolvedor Java. São eles:

Meetup Java São Paulo

Canal oficial do Meetup Java São Paulo, onde são postados os vídeos dos meetups que ocorrem. Os assuntos são os mais variados e tudo focado no ecossistema Java.

SouJava

Canal oficial da sociedade de usuários Java, mais conhecida como SouJava, assim como o anterior, é um canal que foca no ecossistema Java. Nele são realizados lives normalmente semanais, tanto de palestrantes brasileiros, quanto estrangeiros. Tem muito conteúdo bom, inclusive sobre novidades do Java que devemos ficar bem atentos.

Epilogo

Esses foram os canais que separei, no entanto, há muitos outros que poderiam estar nessa listinha e ficarão para uma próxima oportunidade. Conhece algum bacana que tem lhe ajudado? compartilha ai nos comentários ou nas redes sociais. Sempre estou atento… rsrsrssr.

Quer saber o que é, como surgiu e como funciona o Spring Boot? De quebra, ainda entender o que é, e o contexto que o Spring Framework foi criado? Acesse https://www.devjava.com.br/o-que-e-como-surgiu-e-como-funciona-o-spring-boot/