Posts Java spring boot + vscode
Post
Cancel

Java Spring Boot + Vscode

Logotipos do java e do spring com um sinal de soma, seguido pelo logotipo do visual studio code

Para ver como configurar um ambiente de desenvolvimento .NET Core com o vscode veja: Vscode + ASP.NET Core: Preparar ambiente de desenvolvimento

Introdução

Tenho trabalhado com Java bastante ultimamente e como a maioria dos desenvolvedores desta linguagem, estava utilizando o eclipse. Apesar de pessoalmente considerá-lo uma boa IDE, tenho me inclinado a usar o vscode como minha ferramenta de desenvolvimento principal por sua leveza, flexibilidade e extensões que trazem bastante agilidade no desenvolvimento. Portanto, resolvi me aventurar a desenvolver Java usando o vscode e acabei gostando bastante da experiência, muito embora ainda existam algumas deficiências que não substituem completamente IDEs como o eclipse ou até mesmo o IntelliJ IDEA.

O repositório deste guia está disponível no link a seguir: https://github.com/danielpadua/java-spring-vscode-example

Pré-requisitos

Para seguir este guia, é necessário ter instalado em sua máquina:

Instalar extensões de suporte ao Java

Para rodar corretamente projetos Java no vscode, será necessário instalar algumas extensões. Já existem alguns pacotes de extensões que agrupam os essenciais, portanto, abra seu vscode e na guia de extensões procure e instale os itens abaixo:

Java Extension PackJava Extension Pack

Este pacote de extensões contém o essencial para sair desenvolvendo Java no vscode, tais como: Navegação de código, auto-complete, refactor, snippets de códigos principais, debbuger, entre outros.

Spring Boot Extension PackSpring Boot Extension Pack

Este pacote de extensões contém o essencial para ajudar no desenvolvimento de projetos Spring Boot, tais como: Spring Boot Initializr (criação de projetos spring-boot), Spring Boot Dashboard (Aba do vscode que provê um explorador de projetos spring-boot no seu workspace), entre outros.

Após a instalação destes plugins, lembre-se de abrir a paleta de comandos e mandar um Reload Window (ctrl+shift+p => windows/linux ou cmd+shift+p => mac) e escreva Reload Window + Enter.

Criar o projeto com Spring Initializr

Após a instalação das extensões vamos criar um projeto de exemplo Spring Boot usando o Spring Initializr para o vscode. Mais uma vez abra a paleta de comandos e digite: “spring” e selecione a opção: “Spring Initializr: Generate a Maven Project”

  • Selecione a linguagem Java

  • Coloque no Group Id algo como: br.com.danielpadua

  • Artifact Id algo como: java-spring-vscode-example

  • Selecione a versão do Spring-Boot mais atual e estável (No momento da escrita deste guia é a: 2.1.4)

  • Não selecione nenhuma dependência, apenas aperte o Enter

  • Selecione uma pasta para abrigar o projeto, sugiro que possua uma pasta chamada “projetos” na raiz do diretório do usuário

Com o projeto criado, vá no Explorer e abra a pasta que acabamos de criar. O vscode irá tentar inicializar as extensões, e atualizar as dependências Maven suportar o projeto, então, aguarde até que o processo termine antes de continuar:

Pode demorar um pouco, paciência!Pode demorar um pouco, paciência!

O ambiente montado com o projeto aberto deve ser algo assim:

Vscode + JavaVscode + Java

Faça apenas uma pequena alteração no arquivo pom.xml, na seção de dependências, mude o artifactId do org.springframework.boot de: spring-boot-starter para: spring-boot-starter-web. Isso fará com que o maven busque o artefato que possui o necessário para trabalhar com REST APIs ou MVC.

Escrevendo um Hello-World

Vamos escrever um Controller que irá simplesmente retornar o HttpStatus 200 OK com a mensagem clássica de Hello-World, aproveite para testar o intellisense, navegação de código e outros que são comumente utilizados.

  • No Explorer na guia do seu projeto, clique com o botão direito do mouse sobre “javaspringvscodeexample” e adicione uma nova pasta chamada “controllers” e dentro dela um arquivo chamado: ExampleController.java. Digite “class”, e use o snippet:

Snippet para criação da classe ExampleController.javaSnippet para criação da classe ExampleController.java

Repare que a guia: “Java Dependencies” mostra uma visão de pacotes muito similar a que o Eclipse mostra.

Crie o Hello-World da seguinte forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package br.com.danielpadua.javaspringvscodeexample.controllers;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * ExampleController
 *
 * @author Daniel Padua
 */
@RestController
@RequestMapping("api/example")
public class ExampleController {

	@GetMapping("/hello-world")
	public ResponseEntity<String> get() {
		return ResponseEntity.ok("Hello World!");
	}
}

Executando o projeto

Agora execute o projeto utilizando a guia “spring-boot-dashboard”:

Aplicação executando!Aplicação executando!

Neste momento sua aplicação Spring Boot já está em pé na porta 8080 (porta padrão). Abra seu navegador e vá até: http://localhost:8080/api/example/hello-world, e verá o seguinte:

Hello Java Spring Boot World!Hello Java Spring Boot World!

Para executar em modo de debug, basta ir no painel de debug, adicionar uma configuração padrão:

O arquivo abaixo será adicionado num diretório oculto (.vscode) conforme abaixo:

A partir deste momento basta clicar no botão verde de Run para sua aplicação rodar em modo de Debug. Faça o attach de seus breakpoints e aproveite o debug:

Debug de Java no vscodeDebug de Java no vscode

Conclusão

É possível sim trabalhar com Java e Spring-Boot no Vscode e ainda ter uma agilidade de desenvolvimento aproximada das IDEs: Eclipse e IntelliJ IDEA. Mas as extensões ainda tem bastante espaço para melhorarem a ponto de substituir completamente estas IDEs.

Até a próxima!

Esse post está licenciado sob CC BY 4.0 pelo autor.