Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Maneira mais elegante e menos verbosa de criar os beans

Não há uma maneira mais elegante e menos verborrágica para criar os beans ao invés de detalhar um a um na classe de configuração ?

2 respostas
solução!

Olá, Wagner.

Tudo bem?

Uma maneira de lidar com isso é utilizando a anotação @Component (ou outras anotações estereotipadas como @Service ou @Repository) diretamente nas classes que deseja registrar como beans. Dessa forma, você pode evitar a necessidade de declarar manualmente cada bean na classe de configuração.

Aqui está um exemplo:

Antes (Definindo beans manualmente na classe de configuração)

@Configuration
public class UsuarioConfig {

    @Bean
    public CriarUsuario criarUsuario(RepositorioDeUsuario repositorioDeUsuario) {
        return new CriarUsuario(repositorioDeUsuario);
    }

    @Bean
    public ListarUsuarios listarUsuarios(RepositorioDeUsuario repositorioDeUsuario) {
        return new ListarUsuarios(repositorioDeUsuario);
    }
}

Depois (Usando anotações estereotipadas)

@Service
public class CriarUsuario {
    private final RepositorioDeUsuario repositorio;

    @Autowired
    public CriarUsuario(RepositorioDeUsuario repositorio) {
        this.repositorio = repositorio;
    }

    // Outros métodos...
}

@Service
public class ListarUsuarios {
    private final RepositorioDeUsuario repositorio;

    @Autowired
    public ListarUsuarios(RepositorioDeUsuario repositorio) {
        this.repositorio = repositorio;
    }

    // Outros métodos...
}

Ao usar @Service, @Component, @Repository ou @Controller, o Spring automaticamente registra essas classes como beans no contexto da aplicação, eliminando a necessidade de declarar manualmente na configuração.

Seria isso? Veja se faz sentido. Qualquer dúvida manda aqui.

Espero ter ajudado e bons estudos!

Ufa, obrigado, Renan. Estava preocupado de escrever um monte de beans, rssss. Muito obrigado.