Sobes.tech
Junior

Para que serve a anotação @Bean no Spring?

sobes.tech IA

Resposta da IA

A anotação @Bean é utilizada no Spring Framework para declarar explicitamente um bean (componente) separado que deve ser criado e gerido pelo contêiner IoC do Spring.

As principais razões para a sua utilização:

  • Integração de bibliotecas externas: Permite integrar facilmente objetos criados por bibliotecas externas que não estão anotados com @Component, @Service, @Repository, etc.
  • Configuração de objetos: Oferece controlo total sobre o processo de criação do objeto, permitindo passar dependências e configurar as suas propriedades na configuração Java.
  • Vários exemplos da mesma classe: Permite criar múltiplos beans da mesma classe com configurações diferentes.
  • Criação condicional de beans: Em combinação com @Conditional, é possível criar beans dependendo de certas condições.
  • Clareza na separação de configuração e lógica de negócio: A configuração da aplicação concentra-se em classes anotadas com @Configuration, enquanto a lógica de negócio está em classes com @Component.

Exemplo de uso numa classe @Configuration:

// MyConfiguration.java
package com.example;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfiguration {

    @Bean
    public MyService myService() {
        // Criação e configuração do objeto Service
        return new MyService();
    }

    @Bean
    public DataSource dataSource() {
        // Criação e configuração da fonte de dados
        // Pode ser um objeto de uma biblioteca externa
        return new com.example.DataSourceImpl();
    }
}