Posts Java spring boot + intellij idea
Post
Cancel

Java Spring Boot + IntelliJ IDEA

Logotipo do java e do spring boot com um sinal de soma, seguidos pelo logotipo do intellij idea

Introdução

Para quem desenvolve java atualmente é praticamente impossível passar despercebido o framework Spring e especificamente o Spring Boot. Utilizando esta stack de desenvolvimento, ganhamos muita facilidade e agilidade de desenvolvimento em projetos java de pequeno a grande porte. Neste guia irei demonstrar como instalar, configurar o IntelliJ IDEA e criar um simples Hello-World.

O repositório do projeto exemplo deste artigo encontram-se em: https://github.com/danielpadua/java-spring-idea-example

Pré-Requisitos

  • Java JDK 8 ou superior

Instalando o IntelliJ IDEA

Utilize as seções abaixo de acordo com o sistema operacional que estiver utilizando:

Windows

Para Windows temos 2 opções:

Abra o powershell e instale o IntelliJ IDEA utilizando a linha de comando abaixo:

1
choco install intellijidea-community

Linux

Para Linux temos 2 opções:

macOS

Para o macOS temos 2 opções:

Abra o terminal e instale o IntelliJ IDEA utilizando a linha de comando abaixo:

1
brew cask install intellij-idea-ce

Configurando o IntelliJ IDEA

Com o IntelliJ IDEA instalado, a configuração é realmente bem simples. Ao executá-lo somos questionados de algumas configurações como: cor de tema, mapeamento de teclas de atalho e plugins. Vamos deixar tudo na configuração padrão e iniciar.

Criando o projeto

Assim que iniciar, a tela a seguir aparecerá:

Tela inicial do IntelliJ IDEATela inicial do IntelliJ IDEA

Para este exemplo, irei utilizar como build-tool o Maven.

Infelizmente no IntelliJ IDEA Community, de acordo com a documentação, não há suporte para criação de projetos Spring Boot usando o Spring Initializr pela própria IDE na versão Community, somente disponível na versão Ultimate. Então temos duas opções que podemos explorar:

Utilizar o Spring Initilizr Web

Acesse: https://start.spring.io/, e preencha conforme abaixo:

Configuração do projeto no Spring InitializrConfiguração do projeto no Spring Initializr

Lembre-se de selecionar Web como dependência. Clique em Generate Project para baixar o zip projeto. Extraia-o para um diretório de sua preferência, volte no IntelliJ IDEA e selecione Import Project. Vá no diretório do projeto e selecione o arquivo pom.xml. A seguir uma janela de importação de projeto Maven irá aparecer, deixe-a com as configurações padrão:

Importar projeto do Spring InitializrImportar projeto do Spring Initializr

Selecione o projeto para importar e clique em next:

Selecionar o projetoSelecionar o projeto

Na tela a seguir, apontar a versão da JDK que você possui instalado:

Selecionar versão da JDK para o projetoSelecionar versão da JDK para o projeto

Na próxima tela confirme o nome do projeto e clique em finish.

Criar um projeto Maven e adicionar o Spring manualmente

Na tela inicial do IntelliJ IDEA, selecione Create New Project, na guia do lado esquerdo selecione Maven, do lado direito selecione a versão da JDK e clique em next:

Criando projeto MavenCriando projeto Maven

Ao não selecionar o arquétipo, o IntelliJ IDEA entenderá que você usará o arquétipo Quickstart, que está ok para nosso objetivo.

Na próxima tela especifique o GroupId, ArtifactId e a Version e clique em next.

Configuração do MavenConfiguração do Maven

E depois apenas nomeie o projeto e clique em finish:

Nomeando projeto no IDEANomeando projeto no IDEA

Com o projeto criado, configure o pom.xml de acordo com o trecho a seguir:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>br.com.danielpadua</groupId>
	<artifactId>java-spring-idea-example</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>java-spring-idea-example</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

Ao alterar o pom.xml irá aparecer a notificação no canto inferior direito da tela:

Importar mudanças no pom.xmlImportar mudanças no pom.xml

Clique em Import Changes para que o Maven atualize as novas dependências.

Agora vamos criar a classe que conterá o main do projeto. Lembrando que uma das boas práticas de java é não criar nenhum código no pacote default, portanto, clique na source folder main/java e crie um pacote:

Criar pacoteCriar pacote

Escreva o nome do pacote, no meu caso foi: br.com.danielpadua.java_spring_idea_example, e crie uma classe dentro deste pacote chamado ExampleApplication.java e escreva o código:

1
2
3
4
5
6
7
8
9
10
11
package br.com.danielpadua.java_spring_idea_example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ExampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }
}

Para os testes, repita a criação do pacote e crie uma classe chamada: ExampleApplicationTests.java e escreva o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package br.com.danielpadua.java_spring_idea_example;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class ExampleApplicationTests {
    @Test
    public void contextLoads() {
    }
}

Neste ponto temos essencialmente o mesmo projeto que é gerado pelo Spring Initilizr na seção acima.

Completando o projeto

Com o esqueleto básico do projeto montado, basta criarmos um pacote para abrigado o nosso endpoint de Hello World. Clique com o botão direito sobre o pacote raíz:

Criando pacote para os controllersCriando pacote para os controllers

Escreva: controllers e confirme. Dentro do pacote criado, crie uma classe chamada: ExampleController.java e escreva o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package br.com.danielpadua.java_spring_idea_example.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 danielpadua
 *
 */
@RestController
@RequestMapping("/api/example")
public class ExampleController {

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

}

Execute o projeto clicando com o botão direito sobre a classe principal Application.java e selecionando a opção Run 'Application.main()':

Executando a aplicaçãoExecutando a aplicação

Após executar você deverá ver na aba Run localizada na parte inferior da tela a saída:

Log de inicialização do SpringLog de inicialização do Spring

Para testar o funcionamento basta abrir seu browser favorito e acessar: http://localhost:8080/api/example/hello-world e você deverá ver a mensagem de Hello World:

VoiláVoilá

Conclusão

O IntelliJ IDEA é a IDE para java mais utilizada atualmente e muito provavelmente é a melhor e mais completa na opinião de muitos desenvolvedores. E a versão Community é uma ótima alternativa ao tradicional eclipse.

Até a próxima!

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