1
resposta

[Projeto] Desafio: hora da prática - Parte 1

1 - Crie um novo projeto com Spring Boot, usando o site start.spring.io. Esse projeto será o contador, e funcionará na linha de comando. Você deve pedir para um usuário digitar um número e depois imprimir na tela uma contagem de 1 até o número digitado pelo usuário.

package br.com.alura.contador;

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

import java.util.Scanner;

@SpringBootApplication
public class ContadorApplication implements CommandLineRunner {

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

    @Override
    public void run(String... args) throws Exception {
        Scanner leitura = new Scanner(System.in);
        System.out.print("Digite um número: ");
        int numero = leitura.nextInt();

        for (int i = 1; i <= numero; i++) {
            System.out.print(i + " ");
        }
    }
}

2 - Suponha que decidimos mudar de ideia e utilizar novamente a biblioteca Gson no nosso projeto ScreenMatch. Agora que estamos trabalhando com o Maven, os passos para adicionar a biblioteca são diferentes do que já foi feito antes. Explique quais passos você iria realizar nesse caso.

Buscar o código da dependência no site MVN Repository e adiciona-lo ao arquivo pom.xml do projeto, dentro da tag .

<!-- Source: https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.11.0</version>
    <scope>compile</scope>
</dependency>

3 - Agora iremos trabalhar com serialização e desserialização. Para isso, você pode reaproveitar seu projeto do exercício 1. Adicione a dependência do Jackson ao seu pom.xml, pois iremos utilizá-la bastante nos próximos exercícios. Também crie uma classe Tarefa.

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

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

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.15.2</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.15.2</version>
        </dependency>
    </dependencies>
package br.com.alura.contador.model;

public class Tarefa {
    private String descricao;
    private boolean concluida;
    private String pessoaResponsavel;

    public Tarefa() {
    }

    public Tarefa(String descricao, boolean concluida, String pessoaResponsavel) {
        this.descricao = descricao;
        this.concluida = concluida;
        this.pessoaResponsavel = pessoaResponsavel;
    }

    public String getDescricao() {
        return descricao;
    }

    public boolean isConcluida() {
        return concluida;
    }

    public String getPessoaResponsavel() {
        return pessoaResponsavel;
    }

    @Override
    public String toString() {
        return "Tarefa: " + descricao + " | Status: " + concluida + " | Responsável: " + pessoaResponsavel;
    }
}
1 resposta

Oi, Aline Miho! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de ver como você organizou a atividade em etapas e aplicou bem o CommandLineRunner pra executar o projeto no terminal. Também chamou atenção o cuidado ao explicar a inclusão de dependências no pom.xml e a criação da classe Tarefa com atributos e toString(), o que mostra uma boa base para avançar em serialização e desserialização com Jackson.

Se quiser, você pode usar o método hasNextInt() da classe Scanner pra validar a entrada antes de ler o número.


Scanner leitura = new Scanner(System.in);

if (leitura.hasNextInt()) {
    int numero = leitura.nextInt();
    System.out.println(numero);
}

Esse código verifica se o valor digitado é um número inteiro antes de fazer a leitura, ajudando a evitar erros de entrada.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!