Anotações básicas do Spring Boot que todos deveriam conhecer

Publicados: 2021-12-13

Java Spring Framework é uma estrutura de código aberto e de nível empresarial usada para criar aplicativos independentes de nível de produção que são executados na Java Virtual Machine (JVM). Para tanto, o Java Spring Boot é uma ferramenta que simplifica e acelera o desenvolvimento de aplicações web e microsserviços com o Spring Framework. Para isso, o Java Spring Boot aproveita três recursos principais – autoconfiguração, uma abordagem opinativa à configuração e o potencial de criar aplicativos independentes. A fusão desses recursos principais fornece uma ferramenta que permite aos desenvolvedores configurar aplicativos baseados em Spring com configurações mínimas.

Antes das anotações, o comportamento do Spring Framework era principalmente controlado por configuração XML. No entanto, as anotações do Spring Boot alteraram drasticamente como você pode configurar os comportamentos do Spring Framework.

Neste artigo, veremos algumas das anotações básicas no Spring Framework.

Índice

O que são anotações de inicialização do Spring?

As anotações do Spring Boot são uma forma de metadados. Eles não fazem parte do aplicativo em desenvolvimento em si, mas fornecem dados complementares sobre um programa. As anotações não têm impacto direto na operação do código que anotam, nem alteram a ação do programa compilado.

Os aplicativos Spring exigem um grau significativo de configuração. Spring Boot é um framework opinativo que se baseia no Spring Framework. Ele minimiza os esforços de configuração e o padrão necessário para começar. As anotações do Spring Boot são a chave para obter controle sobre o Spring Framework, direcionando o framework e substituindo seus padrões quando necessário. Essas anotações são fáceis de usar e mais rápidas do que construir as funcionalidades equivalentes do zero.

Anotações de inicialização do Spring que todos deveriam conhecer

Embora o Spring Boot funcione em Java, Groovy e Kotlin, vamos nos concentrar em Java enquanto discutimos as importantes anotações do Spring Boot.

1. @Configuração

O @Configuration é usado em classes que definem beans. Um análogo do arquivo de configuração XML é uma anotação de nível de classe usada como fonte de definições de bean. Uma classe Java anotada @Configuration é uma configuração em si e possui métodos para configurar e instanciar dependências.

Exemplo:

@Configuração

ônibus classe pública

{

Motor @BeanBus()

{

retornar novo Bus();

}

}

2. @Bean

Uma alternativa à tag XML <bean>, a anotação @Bean é usada no nível do método para indicar que um método produz um bean a ser gerenciado pelo contêiner Spring. Esta anotação funciona junto com @Configuration para criar beans Spring. A @Configuration possui métodos para configurar e instanciar dependências, e tais métodos são anotados por @Bean.

Exemplo:

@Feijão

Bean públicoExample beanExample()

{

retornar novo BeanExample(),

}

3. @ComponentScan

A anotação @ComponentScan é usada para varrer um pacote de beans. Ele é usado junto com a anotação @Configuration para informar ao Spring os pacotes que devem ser verificados quanto a componentes anotados.

Exemplo:

@ComponentScan(basePackages = “com.xyz”)

@Configuração

Classe pública ScanComponent

{

//…

}

4. @Componente

A anotação @Component é usada em classes para denotar um componente Spring. É uma anotação de nível de classe que converte a classe em bean Spring durante a varredura automática.

Exemplo:

@Componente

Professores de classe pública

{

……

}

5. @EnableAutoConfiguration

A anotação @EnableAutoConfiguration normalmente é colocada na classe principal do aplicativo e define implicitamente um pacote de pesquisa base. Com base nas configurações do caminho de classe, várias configurações de propriedade e outros beans, @EnableAutoConfiguration direciona o Spring Boot para começar a adicionar beans.

6. @SpringBootApplication

A anotação @SpringBootApplication adiciona três anotações – @Configuration, @EnableAutoConfiguration e @ComponentScan. Ele é usado na classe do aplicativo durante a configuração do projeto Spring Boot e a classe anotada com @SpringBootApplication é colocada no pacote base. O @SpringBootApplication faz varredura de componentes, mas apenas dos subpacotes.

7. @Repositório

A anotação @Repository é usada em classes Java que acessam o banco de dados diretamente. Funciona como um marcador para classes que cumprem o papel de Data Access Object ou repositório.

Exemplo:

@Repositório

classe pública TestRepository

{

public void delete()

{

// código de persistência

}

}

8. @Serviço

É uma anotação em nível de classe que marca uma classe Java executando um serviço, como executar lógica de negócios, realizar cálculos ou chamar APIs externas. Uma anotação @Service é uma forma especial da anotação @Component para uso na camada de serviço.

Exemplo:

@Serviço

classe pública TestService

{

serviço nulo público1()

{

// código comercial

}

}

9. @Autowired

Essa anotação injeta implicitamente a dependência do objeto e é aplicada em campos, construtores e métodos setter. Quando @Autowired é usado em campos e os valores dos campos são passados ​​usando o nome da propriedade, o Spring automaticamente atribui os campos com os valores passados.

10. @Controlador

A anotação @Controller é usada em classes Java que servem como controlador em um aplicativo. Ele permite auto-detectar classes de componentes no caminho de classe e também auto-registros de definições de bean para eles. A anotação @Controller é normalmente usada com @RequestMapping, e as classes Java anotadas com @Controller podem manipular vários mapeamentos de solicitação.

Exemplo:

@Controlador

@RequestMapping(“carros”)

classe pública CarsController

{

@RequestMapping(value= “/{name}”, método= RequestMethod.GET)

Empregado público getCarsByName()

{

Devolução de carrosModelo;

}

}

11. @RequestMapping

A anotação @RequestMapping é usada no nível do método e da classe. Ele serve para mapear solicitações da Web em métodos de manipulador e classes de manipulador especificados. Quando @RequestMapping é usado em métodos, ele fornece a URL na qual a execução dos métodos do manipulador ocorrerá. Ao contrário, quando a anotação é usada no nível de classes, ela cria uma URL base para a qual o controlador será usado. Portanto, cada método do manipulador terá seu respectivo mapeamento de solicitação, enquanto o mapeamento de solicitação em nível de classe permanece o mesmo.

Exemplo:

@Controlador

classe pública FlowersController

{

@RequestMapping (“/cor vermelha/flores”)

public String getAllFlowers(Modelo modelo)

{

//código do aplicativo

return “lista de flores”;

}

12. @Qualificador

@Qualifier é usado junto com @Autowired quando é necessário mais controle sobre o processo de injeção de dependência. A anotação @Qualifier pode ser especificada em parâmetros de método ou argumentos de construtores individuais. Confusões geralmente surgem quando o desenvolvedor cria mais de um bean do mesmo tipo, mas apenas um deles precisa ser conectado com uma propriedade. A anotação @Qualifier é útil para eliminar essas confusões.

Exemplo:

@Componente

public class BeanB1 implementa BeanInterface {

//

}

@Componente

public class BeanB2 implementa BeanInterface {

//

}

No exemplo acima, BeanInterface é implementado pelos dois beans BeanB1 e BeanB2. Agora, se o BeanA autowire esta interface, o Spring não saberia qual das duas implementações ele deveria injetar. Você pode resolver esse problema usando a anotação @Qualifier. Com esta anotação no lugar, o Spring saberá qual dos beans deve ser conectado automaticamente.

@Componente

public class BeanA {

@Autowired

@Qualifier(“beanB2”)

dependência privada do BeanInterface;

}

13. @Valor

A anotação @Value é usada nos níveis de campo, parâmetro de método e parâmetro de construtor. Denota uma expressão de valor padrão para o parâmetro ou campo com o qual inicializar a propriedade.

14. @Preguiçoso

A anotação @Lazy é aplicada às classes de componentes. Na inicialização, todas as dependências autowired são criadas e configuradas por padrão. Mas a anotação @Lazy pode ser usada se o desenvolvedor quiser inicializar um bean lentamente. Assim, o bean é criado e inicializado somente mediante solicitação. A anotação @Lazy também pode ser usada em classes @Configuration, o que significa que todos os métodos @Bean nessa @Configuration serão iniciados lentamente.

Embora esta lista de anotações do Java Spring Boot não seja exaustiva, ela cobre mais ou menos as mais básicas que todo desenvolvedor ou entusiasta de Java deve conhecer. Afinal, o Spring Boot simplificou o desenvolvimento de aplicativos baseados em Spring e vale a pena conhecer.

Mestre em Ciência de Dados pela Liverpool John Moores University

Se você é um aspirante a cientista de dados, aqui está uma oportunidade de aprender com os melhores. O upGrad oferece um Mestrado em Ciência de Dados online em parceria com a Liverpool John Moores University, especialmente projetado para profissionais que buscam aprimorar suas habilidades e conhecimentos em ciência de dados.

Aqui estão alguns destaques do programa em resumo:

  • Mestrado pela LJMU e PGP Executivo pelo IIT Bangalore
  • Mais de 500 horas de aprendizado repletas de sessões ao vivo, estudos de caso e projetos
  • Cobertura abrangente de mais de 14 ferramentas e software
  • Três especializações únicas
  • Assistência de carreira dedicada 360 graus
  • Aprendizado entre pares e rede do setor

Os programas de aprendizagem imersivos e relevantes para a indústria do upGrad impactaram mais de 500.000 profissionais em todo o mundo e continuam a estabelecer altos padrões na indústria de EdTech. Então, inscreva-se hoje e junte-se à base global de mais de 40.000 alunos espalhados por 85 países!

Aprenda cursos de ciência de dados online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Qual é o objetivo do iniciador do Spring Boot?

Iniciadores do Spring Boot são descritores de dependência que permitem adicionar jars no caminho de classe. Cada inicializador tem o seguinte padrão de nomenclatura na estrutura Spring Boot: spring-boot-starter-*, em que o * representa um tipo de aplicativo específico.

Qual é a diferença entre @SpringBootApplication e @EnableAutoConfiguration?

A principal tarefa de @EnableAutoConfiguration é habilitar os recursos de configuração automática do aplicativo Spring Boot. Pelo contrário, @SpringBootApplication combina três anotações - @ComponentScan para verificação de componentes, @Configuration para configuração baseada em Java na estrutura Spring e @EnableAutoConfiguration para permitir configuração automática em aplicativos Spring Boot.

A inicialização do Spring pode ser executada sem SpringBootApplication?

Não é obrigatório usar @SpringBootApplication para criar um aplicativo Spring Boot. Você ainda pode usar @EnableAutoConfiguration e @Configuration individualmente.