Spring Boot - Guia

Aprenda as principais anotações e responsabilidades do Spring Boot.

O que é o Spring Boot?

O Spring Boot é um framework Java que facilita a criação de aplicações Spring, eliminando configurações complexas e proporcionando um ambiente pronto para produção.

Principais Anotações do Spring Boot

O Spring Boot fornece várias anotações para facilitar o desenvolvimento. Aqui estão algumas das principais:

@SpringBootApplication

Esta anotação é usada para marcar a classe principal do aplicativo e ativar várias configurações automáticas.

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

@RestController

Define uma classe como um controlador REST, permitindo o uso de endpoints HTTP.

@RestController
@RequestMapping("/api")
public class MeuController {

    @GetMapping("/hello")
    public String hello() {
        return "Olá, Spring Boot!";
    }
}

@Autowired

Usada para injetar automaticamente dependências do Spring.

@Service
public class MeuServico {
    public String obterMensagem() {
        return "Serviço funcionando!";
    }
}

@RestController
@RequestMapping("/api")
public class MeuController {

    @Autowired
    private MeuServico meuServico;

    @GetMapping("/mensagem")
    public String mensagem() {
        return meuServico.obterMensagem();
    }
}

@Component

Transforma uma classe em um componente gerenciado pelo Spring.

@Component
public class MeuComponente {
    public String saudacao() {
        return "Olá do componente!";
    }
}

@Service

Especifica que a classe representa um serviço na camada de negócios.

@Service
public class MeuServico {
    public String processarDados() {
        return "Processando dados...";
    }
}

@Repository

Define um repositório para acessar banco de dados.

@Repository
public interface MeuRepositorio extends JpaRepository<Entidade, Long> {
}

@Entity

Usada para definir uma entidade que será mapeada para uma tabela do banco de dados.

@Entity
public class Usuario {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String nome;
}

@RequestMapping

Define o caminho de um controlador.

@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
    
    @GetMapping
    public String listarUsuarios() {
        return "Listando usuários...";
    }
}

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping

Definem métodos HTTP específicos para os endpoints.

@RestController
@RequestMapping("/produtos")
public class ProdutoController {

    @GetMapping
    public String listar() {
        return "Lista de produtos";
    }

    @PostMapping
    public String criar() {
        return "Produto criado";
    }

    @PutMapping("/{id}")
    public String atualizar(@PathVariable Long id) {
        return "Produto atualizado: " + id;
    }

    @DeleteMapping("/{id}")
    public String deletar(@PathVariable Long id) {
        return "Produto deletado: " + id;
    }
}