Sto usando le annotazioni Spring e voglio usare l'inizializzazione pigra.Spring @Autowired @Lazy
Sto incontrando un problema che quando voglio importare un bean da un'altra classe sono costretto a usare @Autowired
che non sembra utilizzare init pigro. Esiste comunque un modo per forzare questo comportamento pigro di init?
In questo esempio non voglio vedere "Caricamento genitore" in corso di stampa poiché sto caricando solo childBean
che non ha dipendenze su lazyParent
.
@Configuration
public class ConfigParent {
@Bean
@Lazy
public Long lazyParent(){
System.out.println("Loading parent bean");
return 123L;
}
}
@Configuration
@Import(ConfigParent.class)
public class ConfigChild {
private @Autowired Long lazyParent;
@Bean
public Double childBean() {
System.out.println("loading child bean");
return 1.0;
}
@Bean
@Lazy
public String lazyBean() {
return lazyParent+"!";
}
}
public class ConfigTester {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigChild.class);
Double childBean=ctx.getBean(Double.class);
System.out.println(childBean);
}
}
Ho appena avuto questa orribile visione di un fagiolo 'Void'. Uno per TDWTF credo ... –
Void Bean per dominarli tutti. Void Bean per trovarli. Void Bean per portarli tutti, e in Dipendenza Iniezione Legarli –
@skaffman Posso chiedere perché non dovrei definire Stringhe come fagioli? – wings