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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 ?
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:
@Configuration
public class UsuarioConfig {
@Bean
public CriarUsuario criarUsuario(RepositorioDeUsuario repositorioDeUsuario) {
return new CriarUsuario(repositorioDeUsuario);
}
@Bean
public ListarUsuarios listarUsuarios(RepositorioDeUsuario repositorioDeUsuario) {
return new ListarUsuarios(repositorioDeUsuario);
}
}
@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.