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.