Dati due fagioli annotate con @Startup:@DependsOn è necessario per un altro bean CDI che viene iniettato?
@Singleton
@Startup
@DependsOn("B")
public A {
@Inject
private B b;
}
@Singleton
@Startup
public B {}
Is neccessary @DependsOn in questa situazione per garantire che B viene inizializzato prima di A? O c'è qualche convenzione sulla configurazione che in una situazione del genere l'ordine delle iniezioni determina l'ordine di inizializzazione?
Il tutorial ufficiale non copre questo caso ma solo i bean che sono semplicemente semanticamente coperti senza alcun collegamento sintattico/di cablaggio tramite @Inject.
Mi ha sempre infastidito se ho davvero bisogno dell'annotazione @DependsOn. Perché se SecondaryBean ha bisogno di PrimaryBean probabilmente significa che PB è iniettato in SB e usato da qualche parte così PB è garantito per essere inizializzato prima di usarlo per la prima volta in SB.Esiste un caso reale in cui SB dipende da PB ma non lo usa? – rychu