Sobes.tech
Junior — Middle

Qual será o efeito de usar a anotação @Bean em um método dentro de uma classe para a instância dessa classe?

sobes.tech IA

Resposta da IA

A anotação @Bean no Spring Framework é usada para definir um método que cria e devolve um objeto gerido pelo contêiner Spring como um bean.

Se um método com @Bean estiver dentro de uma classe que também é um componente do Spring (por exemplo, anotada com @Configuration), então ao criar uma instância dessa classe, o Spring chamará esse método e registará o objeto devolvido como um bean no contexto.

Efeitos de usar @Bean num método:

  • O método é chamado uma vez (se o scope não for alterado), e o resultado é armazenado em cache como um bean singleton.
  • Permite configurar e criar explicitamente beans que não podem ser detectados automaticamente por varredura.
  • Permite gerir dependências e configuração através de código Java.

Exemplo:

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

Neste exemplo, myService será registado como um bean, e poderá ser injetado em outros componentes.