No meu post anterior “Introdução ao Spring Boot”, discutimos os conceitos básicos do Spring Boot. Agora, vamos falar sobre “Quais são os principais componentes do Spring Boot” e “Como o Spring Boot funciona internamente”.
Principais Componentes do Framework Spring Boot
O Framework Spring Boot tem principalmente quatro componentes principais.
- Spring Boot Starters
- Spring Boot AutoConfigurator
- Spring Boot CLI
- Spring Boot Actuator
NOTA:- Além desses quatro componentes principais, existem mais dois componentes do Spring Boot:
- Spring Initilizr
- Spring Boot IDEs
Para iniciar rapidamente novos projetos Spring Boot, podemos usar a interface web “Spring Initializr”. URL do Spring Initializr: https://start.spring.io. Temos várias IDEs Spring Boot, como Eclipse IDE, IntelliJ IDEA, Spring STS Suite etc. Vamos discutir esses dois componentes nos próximos posts. Agora vamos discutir esses quatro componentes do Spring Boot detalhadamente.
Inicializador do Spring Boot
Os Inicializadores do Spring Boot são uma das principais características ou componentes fundamentais do Framework Spring Boot. A principal responsabilidade do Inicializador do Spring Boot é combinar um grupo de dependências comuns ou relacionadas em dependências únicas. Vamos explorar esta declaração em detalhes com um exemplo. Por exemplo, gostaríamos de desenvolver uma aplicação web Spring com o servidor web Tomcat. Então, precisamos adicionar as seguintes dependências mínimas no arquivo pom.xml do Maven ou no arquivo build.gradle do Gradle
- Arquivo Jar do Spring core (spring-core-xx.jar)
- Arquivo Jar do Spring Web (spring-web-xx.jar)
- Arquivo Jar do Spring Web MVC (spring-webmvc-xx.jar)
- Arquivo Jar do Servlet (servlet-xx.jar)
Se quisermos adicionar algumas funcionalidades de banco de dados, então precisamos adicionar jars relacionados ao banco de dados, como o arquivo Jar do Spring JDBC, os arquivos Jar do Spring ORM, o arquivo Jar do Spring Transaction, etc.
- Arquivo Jar do Spring JDBC (spring-jdbc-xx.jar)
- Arquivo Jar do Spring ORM (spring-orm-xx.jar)
- Arquivo Jar do Spring Transaction (spring-transaction-xx.jar)
Precisamos definir muitas dependências em nossos arquivos de compilação. É uma tarefa tediosa e complicada para um desenvolvedor. Além disso, aumenta o tamanho do arquivo de compilação. Qual é a solução para evitar tantas definições de dependências em nossos arquivos de compilação? A solução é o componente Spring Boot Starter. O componente Spring Boot Starter combina todos os jars relacionados em um único arquivo jar, para que possamos adicionar apenas a dependência do arquivo jar aos nossos arquivos de compilação. Em vez de adicionar os 4 arquivos jar acima ao nosso arquivo de compilação, precisamos adicionar apenas um arquivo jar: “spring-boot-starter-web”. Quando adicionamos a dependência do arquivo jar “spring-boot-starter-web” ao nosso arquivo de compilação, o Framework Spring Boot irá automaticamente baixar todos os jars necessários e adicioná-los ao classpath do nosso projeto. Da mesma forma, o arquivo jar “spring-boot-starter-logging” carrega todas as dependências como “jcl-over-slf4j, jul-to-slf4j,log4j-over-slf4j, logback-classic” para o classpath do nosso projeto.
Principais vantagens do Spring Boot Starter
- O Spring Boot Starter reduz a definição de muitas dependências, simplificando as dependências de compilação do projeto.
- O Spring Boot Starter simplifica as dependências de compilação do projeto.
Isso é tudo sobre o componente Spring Boot Starter. Discutiremos mais detalhes com alguns exemplos do Spring Boot em futuras postagens.
AutoConfigurador do Spring Boot
Outro componente-chave importante do Spring Boot Framework é o Spring Boot AutoConfigurator. A maioria dos críticos da Plataforma Spring IO (Spring Framework) opina que “Desenvolver uma aplicação baseada em Spring requer muita configuração (seja configuração XML ou configuração de anotações). Então como resolver esse problema? A solução para este problema é o Spring Boot AutoConfigurator. A principal responsabilidade do Spring Boot AutoConfigurator é reduzir a configuração do Spring. Se desenvolvermos aplicações Spring no Spring Boot, então não precisamos definir uma única configuração XML e quase nenhuma ou pouca configuração de anotações. O componente Spring Boot AutoConfigurator cuidará de fornecer essas informações. Por exemplo, se quisermos declarar uma aplicação Spring MVC usando a Plataforma Spring IO, então precisamos definir muita configuração XML, como visões, resolvedores de visões, etc. Mas se usarmos o Framework Spring Boot, então não precisamos definir essa configuração XML. O Spring Boot AutoConfigurator cuidará disso. Se usarmos o arquivo jar “spring-boot-starter-web” em nosso arquivo de construção do projeto, então o Spring Boot AutoConfigurator resolverá automaticamente visões, resolvedores de visões, etc. E também o Spring Boot reduz a definição de configuração de anotações. Se usarmos a anotação @SpringBootApplication no nível da classe, então o Spring Boot AutoConfigurator adicionará automaticamente todas as anotações necessárias ao bytecode da classe Java. Se consultarmos a Documentação do Spring Boot, podemos encontrar a seguinte definição para @SpringBootApplication.
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
Isso é, @SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration. Isso é tudo sobre o componente de Autoconfiguração do Spring Boot. Discutiremos alguns detalhes adicionais com alguns exemplos do Spring Boot nos próximos posts. NOTA:-
- Em palavras simples, o Spring Boot Starter reduz as dependências de compilação e o Spring Boot AutoConfigurator reduz a Configuração do Spring.
- Como discutimos que o Spring Boot Starter tem uma dependência do Spring Boot AutoConfigurator, o Spring Boot Starter aciona o Spring Boot AutoConfigurator automaticamente.
Spring Boot CLI
O Spring Boot CLI (Interface de Linha de Comando) é um software do Spring Boot para executar e testar aplicações Spring Boot a partir do prompt de comando. Quando executamos aplicações Spring Boot usando o CLI, ele usa internamente os componentes Spring Boot Starter e Spring Boot AutoConfigurate para resolver todas as dependências e executar a aplicação. Podemos até mesmo executar Aplicações Web Spring com simples Comandos do CLI do Spring Boot. O Spring Boot CLI introduziu um novo comando “spring” para executar Scripts Groovy a partir do prompt de comando. Exemplo de comando spring:
spring run HelloWorld.groovy
Aqui HelloWorld.groovy é um arquivo de script Groovy FileName. Assim como os nomes de arquivos de origem Java têm a extensão *.java, os arquivos de script Groovy têm a extensão *.groovy. O comando “spring” executa HelloWorld.groovy e produz a saída. O componente CLI do Spring Boot requer muitas etapas, como Instalação do CLI, Configuração do CLI, Desenvolvimento de uma aplicação Spring Boot simples e teste. Portanto, vamos dedicar outro post para discuti-lo em detalhes com alguns exemplos do Spring Boot. Por favor, consulte meu próximo post sobre o CLI do Spring Boot.
Atuador do Spring Boot
Os componentes do Atuador do Spring Boot oferecem muitos recursos, mas dois recursos principais são
- Fornecendo Pontos Finais de Gerenciamento para Aplicações Spring Boot.
- Métricas de Aplicações Spring Boot.
Ao executarmos nossa Aplicação Web Spring Boot usando CLI, o Atuador do Spring Boot fornece automaticamente o nome do host como “localhost” e o número da porta padrão como “8080”. Podemos acessar esta aplicação usando o ponto final “https://localhost:8080/”. Na verdade, usamos métodos de solicitação HTTP como GET e POST para representar Pontos Finais de Gerenciamento usando o Atuador do Spring Boot. Discutiremos mais detalhes sobre o Atuador do Spring Boot nos próximos posts.
Internos do Framework Spring Boot
É sempre recomendado entender como o Spring Boot Framework reduz as dependências de compilação, a Configuração do Spring, etc. Como o Spring Boot funciona nos bastidores. Se você está familiarizado com a linguagem de programação Groovy, então você conhece a maior parte do conteúdo. Em Groovy, não precisamos adicionar algumas importações e não é necessário adicionar algumas dependências ao projeto Groovy. Quando compilamos scripts Groovy usando o Compilador Groovy (groovyc), ele adicionará automaticamente todas as instruções de importação padrão e, em seguida, compilará. Da mesma forma, a linguagem de programação Groovy contém um Resolvedor de Dependências JAR para resolver e adicionar todos os arquivos JAR necessários ao classpath do projeto Groovy. Internamente, o Spring Boot Framework usa o Groovy para adicionar algumas configurações padrão, como instruções de importação padrão, o método principal da aplicação, etc. Quando executamos scripts Groovy a partir do prompt de comando CLI, ele usa este método principal para executar a aplicação Spring Boot.
Grape
Grape é um mecanismo de Resolução de Dependências Incorporado. Grape é um Gerenciador de Dependências JAR incorporado ao Groovy. Grape nos permite adicionar rapidamente dependências do repositório Maven ao classpath do nosso projeto para reduzir as definições do arquivo de compilação. O modelo de programação do Framework Spring Boot é principalmente inspirado no modelo de programação do Groovy. O Framework Spring Boot depende internamente desses dois principais componentes: Groovy e Grape. Você pode consultar a documentação do Grape https://docs.groovy-lang.org/latest/html/documentation/grape.html para mais detalhes. É isso sobre os Componentes e Internos do Spring. Vamos discutir esses componentes em detalhes com alguns exemplos do Spring Boot em postagens futuras. Se você tiver alguma dúvida, por favor, deixe um comentário.