Ashish:
Eu tenho que trabalhar com biblioteca existente da minha empresa que tem monte de @Bean embalados em @Configuration no projeto Spring mas seria adicionado como dependência para o meu projeto. A situação seria semelhante ao
@Configuration
Class A{
@Bean
B b(){
return new B()
}
}
@Configuration
Class C{
@Bean
D d(){
D d = new D();
//TODO: How do I use instance of B here
d.someConfiguration(B b);
return d;
}
}
Devo inicializado Um usando novo operador em C e chamada de método b ou devo @Autowire B
em C diretamente.
Piscina morta :
Existem várias maneiras que você pode fazer isso
Por autowiring campo
@Configuration
Class C{
@Autowire
private B b;
@Bean
D d(){
D d = new D();
//TODO: How do I use instance of B here
d.someConfiguration(B b);
return d;
}
}
Pelo construtor autowiring (Pessoalmente eu prefiro usar autowiring construtor que será de ajuda durante casos de teste)
@Configuration
Class C{
private B b;
@Autowire
public C(B b){
this.b=b;
}
@Bean
D d(){
D d = new D();
//TODO: How do I use instance of B here
d.someConfiguration(B b);
return d;
}
}
Ou você pode simplesmente adicioná-lo como argumentos de método primavera vai resolvê-lo
@Configuration
Class C{
@Bean
D d(B b){
D d = new D();
//TODO: How do I use instance of B here
d.someConfiguration(B b);
return d;
}
}