Uma Introdução ao Spring Framework

Uma Introdução ao Spring Framework

Spring é uma estrutura Java que usa um contêiner para criar e gerenciar os diferentes componentes de um aplicativo. O contêiner (geralmente chamado de contexto de aplicativo Spring) conecta os diferentes componentes em um aplicativo usando o padrão de design de injeção de dependência (DI). DI permite que você use um objeto em uma classe dependente, sem criar uma nova instância dele dentro da classe dependente.

Portanto, em vez de permitir que cada componente crie novas instâncias daquelas das quais eles dependem, o contêiner do Spring cria e mantém uma instância de cada um dos componentes que ele hospeda. Esse contêiner então injeta uma instância de um componente em todos os outros componentes que precisam dele.

Explorando os principais recursos do Spring

A estrutura Spring tem cerca de 20 módulos bem organizados que desempenham um papel integral em sua capacidade de criar e gerenciar aplicativos. Com base nos principais recursos desses módulos, você pode agrupá-los em cinco categorias:

  • Recipiente principal
  • Acesso/Integração de Dados
  • Rede
  • Programação e Instrumentação Orientada a Aspectos
  • Teste

Recipiente de mola

O Spring usa um contêiner para criar e gerenciar diferentes componentes (que ele chama de beans) de um aplicativo. O contêiner é acessível por meio da interface ApplicationContext do Spring, que permite instanciar, configurar e montar objetos (ou beans). O contêiner do Spring pode executar sua função devido ao auxílio de metadados de configuração.

Esses metadados de configuração podem ter vários formatos diferentes, mas seu formato típico é o XML. Além dos beans, o contêiner do Spring também consiste em um núcleo, contexto e um módulo de expressão.

Acesso/integração de dados do Spring

O aspecto de acesso/integração de dados da estrutura de primavera consiste em vários submódulos: JDBC, ORM, OXM, JMS e transação. Esses módulos trabalham juntos para gerenciar todos os dados que seu aplicativo usa.

web de primavera

O recurso da web do aplicativo Spring fornece integração orientada à web para seu aplicativo. Além da integração orientada à web, o Spring fornece um módulo de servlet da web. O módulo de servlet da web é responsável pela implementação do controlador de exibição de modelo (MVC) do Spring.

Spring Programação Orientada a Aspectos (AOP)

A estrutura AOP do Spring é outro de seus principais componentes. Embora a estrutura AOP não seja crucial para a função de contêiner do Spring, ela complementa o contêiner por ser uma solução de middleware capaz. Um dos principais recursos da estrutura AOP é que ela fornece serviços corporativos declarativos para seu aplicativo, ou seja, gerenciamento de transação de declaração.

O gerenciamento declarativo de transações é uma abordagem desejável para o desenvolvimento de software porque tem um impacto mínimo no código do aplicativo.

Teste de Primavera

O Spring dá uma importância significativa aos testes de aplicativos. Seu módulo de teste oferece suporte a testes de integração e testes de unidade usando JUnit ou TestNG.

Criando um aplicativo Spring

Existem várias maneiras de criar o clichê para um novo aplicativo Spring. As várias abordagens incluem:

  • A partir do aplicativo da web (ou Spring Initializr) no site oficial do Spring.
  • Criando manualmente uma estrutura de diretório de projeto e especificações de compilação.
  • Com a suíte de ferramentas Spring.
  • Na linha de comando com a interface de linha de comando do Spring Boot.
  • Com o Eclipse IDE.
  • Com o IntelliJ IDEA IDE.

A abordagem mais popular é o Spring Initializr:

Spring Initializer

Como você pode ver na imagem acima, você terá várias decisões a tomar. O primeiro é o tipo de projeto que você deseja inicializar. O Spring oferece três opções: Gradle for Groovy, Gradle for Kotlin ou Maven. Este aplicativo de amostra usará um projeto Maven.

As outras opções que você deve selecionar são o idioma (Java), a versão do Spring Boot que deseja usar e os metadados do projeto. O Spring já possui alguns dados fictícios em seus cinco campos que o ajudarão a criar um aplicativo de amostra. No entanto, você precisará atualizar esses campos com dados específicos do projeto, pois esses metadados descreverão seu aplicativo Spring, incluindo os beans Spring e seus métodos.

Metadados do Spring Intializr

Em seguida, você precisará selecionar a embalagem em que deseja seus arquivos (jar ou war). Em seguida, você pode selecionar a versão do Java que possui em seu dispositivo. A decisão final que você precisará tomar é o tipo de dependência que deseja para seu aplicativo.

O Spring fornece várias dependências que você pode usar para adicionar propriedades ao seu aplicativo. Para adicionar uma nova dependência ao seu aplicativo, basta clicar no botão adicionar dependências à direita do Spring Initializr. Esta ação irá gerar a seguinte sobreposição em sua tela:

Sobreposição do Spring Initializr

Para este aplicativo de exemplo, a única dependência necessária é o Spring Web. Essa dependência permite criar aplicativos da Web usando a arquitetura MVC. Depois de selecionar todas as dependências que deseja usar em sua aplicação, vá em frente e clique em gerar. Isso fará o download do clichê do projeto para você.

Agora você tem um projeto Spring Boot (que é uma das bibliotecas do Spring). A etapa final é importar o projeto para o IDE de sua preferência. Seu projeto Spring terá a seguinte estrutura de projeto:

Estrutura do projeto Spring Boot

Esta é uma estrutura de projeto Maven normal e há vários arquivos importantes com os quais você precisa se familiarizar.

  • Pom.xml: contém os dados de configuração do aplicativo Spring.
  • OnlineShopaholicsApplication.java: Esta é a classe principal do Spring Boot, que executa o aplicativo.
  • OnlineShopaholicsApplicationTest.java: Esta é uma classe de teste JUnit que garante que o contexto do aplicativo Spring (ou contêiner) seja carregado corretamente.

Executando um aplicativo Spring

A classe bootstrap do Spring, que neste caso é a classe OnlineShopaholicsApplication, possui o seguinte código inicial:

package com.onlineshopaholics;

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


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

Um dos aspectos mais importantes do código acima é a anotação @SpringBootApplication , que é uma anotação composta que permite que seu aplicativo acesse os recursos de três outras anotações:

  • @EnableAutoconfiguration: Esta anotação habilita a configuração automática do Spring Boot. Isso significa que ele diz ao Spring boot para configurar qualquer componente que ele acha que seu aplicativo precisará para funcionar.
  • @ComponentScan: Esta anotação permite ativar a verificação de componentes. Esse recurso é importante, pois permite que o Spring descubra e registre automaticamente outros componentes anotados para uso pelo contexto do aplicativo Spring (ou contêiner).
  • @SpringBootConfiguration: Esta é uma forma especializada da anotação @Configuration, que permite registrar beans (ou objetos) no contexto do aplicativo Spring.

O outro aspecto importante do código acima é o método main() , ele executa seu aplicativo. Quando o aplicativo é executado agora, ele simplesmente inicia o servidor. Portanto, se você quiser adicionar mais funcionalidades ao aplicativo, precisará atualizar o código:

package com.onlineshopaholics;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

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

  @GetMapping("/customer")
  public String Welcome(@RequestParam(value = "name", defaultValue = "Customer") String name) {
    return String.format("Welcome %s!", name);
  }
}

O aplicativo Spring Boot agora tem três novas anotações:

  • @RestController: Esta anotação marca a classe como um controlador, então cada método na classe acima (exceto main()) retornará um objeto de domínio em vez de uma exibição.
  • @GetMapping: esta anotação mapeia solicitações HTTP GET para métodos de cabeçalho específicos. Assim, cada vez que você criar uma solicitação para “/cliente” no navegador, o método Welcome() tratará a solicitação retornando um valor de string.
  • @RequestParam: esta anotação indica que um parâmetro de método deve ser vinculado a um parâmetro de solicitação da web.

Com o código atualizado, seu Spring OnlineShopaholicsApplication agora possui uma página de cliente que você pode visualizar em seu navegador. A execução do aplicativo iniciará o servidor e produzirá a saída no console.

Há muitas informações importantes na saída. Ele informa que o servidor está em execução, informa quanto tempo demorou o processo de inicialização e informa em qual porta o aplicativo está sendo executado (8080, por padrão). Portanto, se você navegar para http://localhost:8080/customer , verá a seguinte saída em seu navegador:

Saída do navegador do aplicativo Spring

Agora você pode projetar sua visualização de aplicativo

Outro arquivo importante na estrutura do projeto que você pode notar é a pasta de templates . Idealmente, a classe OnlineShopaholicsApplication deve servir como um controlador, que lida com solicitações de diferentes exibições. Portanto, em uma aplicação completa, a classe controller não deve conter o texto que será exibido na view de sua requisição.

Em vez disso, você precisará criar arquivos de modelo usando HTML e colocá-los na pasta de modelos de seu aplicativo Spring.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *