Spring Boot - Introdução

Spring Boot é uma estrutura baseada em Java de código aberto usada para criar um microServiço. Ele é desenvolvido pela Pivotal Team e é usado para construir aplicações de mola independentes e prontas para produção. Este capítulo lhe dará uma introdução ao Spring Boot e o familiarizará com seus conceitos básicos.

O que é Micro Service?

Micro Service é uma arquitetura que permite aos desenvolvedores desenvolver e implantar serviços de forma independente. Cada serviço em execução tem seu próprio processo e isso atinge o modelo leve para suportar aplicativos de negócios.

Vantagens

Os microsserviços oferecem as seguintes vantagens para seus desenvolvedores -

  • Fácil implantação
  • Escalabilidade simples
  • Compatível com Containers
  • Configuração mínima
  • Menor tempo de produção

O que é Spring Boot?

Spring Boot fornece uma boa plataforma para desenvolvedores Java desenvolverem um aplicativo Spring autônomo e de produção que você pode just run. Você pode começar com configurações mínimas sem a necessidade de uma configuração inteira do Spring.

Vantagens

Spring Boot oferece as seguintes vantagens para seus desenvolvedores -

  • Fácil de entender e desenvolver aplicações de molas
  • Aumenta a produtividade
  • Reduz o tempo de desenvolvimento

Metas

Spring Boot é projetado com os seguintes objetivos -

  • Para evitar configuração XML complexa no Spring
  • Para desenvolver aplicativos Spring prontos para produção de uma maneira mais fácil
  • Para reduzir o tempo de desenvolvimento e executar o aplicativo de forma independente
  • Oferece uma maneira mais fácil de começar a usar o aplicativo

Por que Spring Boot?

Você pode escolher o Spring Boot por causa dos recursos e benefícios que ele oferece, conforme fornecido aqui -

  • Ele fornece uma maneira flexível de configurar Java Beans, configurações XML e transações de banco de dados.

  • Ele fornece um processamento em lote poderoso e gerencia terminais REST.

  • No Spring Boot, tudo é configurado automaticamente; nenhuma configuração manual é necessária.

  • Ele oferece um aplicativo de mola baseado em anotação

  • Facilita o gerenciamento de dependências

  • Inclui Embedded Servlet Container

Como funciona?

Spring Boot configura automaticamente seu aplicativo com base nas dependências que você adicionou ao projeto usando @EnableAutoConfigurationanotação. Por exemplo, se o banco de dados MySQL estiver em seu caminho de classe, mas você não configurou nenhuma conexão de banco de dados, o Spring Boot configura automaticamente um banco de dados na memória.

O ponto de entrada do aplicativo Spring Boot é a classe contém @SpringBootApplication anotação e o método principal.

Spring Boot verifica automaticamente todos os componentes incluídos no projeto usando @ComponentScan anotação.

Spring Boot Starters

Lidar com o gerenciamento de dependências é uma tarefa difícil para grandes projetos. Spring Boot resolve esse problema fornecendo um conjunto de dependências para conveniência dos desenvolvedores.

Por exemplo, se você deseja usar Spring e JPA para acesso ao banco de dados, é suficiente se você incluir spring-boot-starter-data-jpa dependência em seu projeto.

Observe que todos os iniciadores Spring Boot seguem o mesmo padrão de nomenclatura spring-boot-starter- *, onde * indica que é um tipo de aplicativo.

Exemplos

Veja os seguintes iniciadores do Spring Boot explicados abaixo para uma melhor compreensão -

Spring Boot Starter Actuator dependencyé usado para monitorar e gerenciar seu aplicativo. Seu código é mostrado abaixo -

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

Spring Boot Starter Security dependencyé usado para Spring Security. Seu código é mostrado abaixo -

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

Spring Boot Starter web dependencyé usado para escrever um Rest Endpoints. Seu código é mostrado abaixo -

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

Spring Boot Starter Thyme Leaf dependencyé usado para criar um aplicativo da web. Seu código é mostrado abaixo -

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

Spring Boot Starter Test dependencyé usado para escrever casos de teste. Seu código é mostrado abaixo -

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

Configuração Automática

O Spring Boot Auto Configuration configura automaticamente seu aplicativo Spring com base nas dependências JAR adicionadas ao projeto. Por exemplo, se o banco de dados MySQL estiver em seu caminho de classe, mas você não configurou nenhuma conexão de banco de dados, o Spring Boot configura automaticamente um banco de dados na memória.

Para este propósito, você precisa adicionar @EnableAutoConfiguration anotação ou @SpringBootApplicationanotação em seu arquivo de classe principal. Em seguida, seu aplicativo Spring Boot será configurado automaticamente.

Observe o seguinte código para um melhor entendimento -

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

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

Aplicativo Spring Boot

O ponto de entrada do aplicativo Spring Boot é a classe que contém @SpringBootApplicationanotação. Esta classe deve ter o método principal para executar o aplicativo Spring Boot.@SpringBootApplication a anotação inclui configuração automática, varredura de componentes e configuração do Spring Boot.

Se você adicionou @SpringBootApplication anotação para a classe, você não precisa adicionar o @EnableAutoConfiguration, @ComponentScan e @SpringBootConfigurationanotação. o@SpringBootApplication a anotação inclui todas as outras anotações.

Observe o seguinte código para um melhor entendimento -

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

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

Varredura de componente

O aplicativo Spring Boot verifica todos os beans e declarações de pacote quando o aplicativo é inicializado. Você precisa adicionar o@ComponentScan anotação para seu arquivo de classe para varrer seus componentes adicionados em seu projeto.

Observe o seguinte código para um melhor entendimento -

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;

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