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 ?
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.