Sobes.tech
Junior

O que são beans no contexto de Java e Spring?

sobes.tech IA

Resposta da IA

No contexto de Java e Spring, um bean é um objeto gerido pelo contêiner Spring IoC (Inversão de Controle).

Pontos-chave:

  • Objeto: É qualquer objeto Java típico.
  • Gestão pelo Spring: O contêiner Spring é responsável por:
    • Criar instâncias de beans.
    • Configuração (injeção de dependências).
    • Gerir o ciclo de vida (inicialização, uso, término).
  • Configuração: Os beans são definidos através de XML, anotações (@Component, @Service, @Repository, @Controller, @Bean) ou configuração baseada em Java.
  • Estados: A maioria dos beans são singletons no contexto do contêiner Spring por padrão, mas podem ter outras áreas de escopo: prototype, request, session e global session.

Exemplo de definição de um bean usando a anotação @Component:

// Classe reconhecida como bean pelo contêiner Spring
@Component
public class MyService {

    // Dependência que o Spring irá injetar
    private final MyRepository myRepository;

    // Construtor para injetar a dependência
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    public void doSomething() {
        myRepository.getData();
    }
}

Exemplo de definição de um bean usando configuração baseada em Java:

// Classe de configuração
@Configuration
public class AppConfig {

    // Método que declara um bean
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}

Os beans formam a estrutura da sua aplicação Spring, garantindo coesão e gestão dos componentes.