Cercando su internet ho provato questa soluzione che funziona.
Praticamente, sempre usando le annotation, ho modificato la classe A nel seguente modo:
E in questo modo quello che voglio implementare funziona: all'avvio del server viene chiamato il metodo run() e non ho più i problemi di null pointer e il giro funziona usando le annotation e non i metodi GetInstance() che, come giustamente mi hai fatto notare, vanno contro il concetto della dependency injection.codice:package com.prove.prove1 @Configuration Class A { @Autowired B b; @PostConstruct public void run(){ b.faiQuesto(); } }
Per quello che ho capito di spring in questa configurazione all'avvio del server, spring istanzia tutti i beans coinvolti (io li sto gestendo tramite annotation ma ho visto che si può agire tramite file XML di configurazione) in modo che siano disponibili senza doverli istanziare esplicitamente, è corretto quello che sto dicendo?
Essendo spring un argomento nuovo, mi preme capire se questa soluzione è concettualmente corretta al di la del suo funzionamento.
P.S: ho notato però che il costruttore di A viene istanziato due volte all'avvio del server, c'è qualche altro accorgimento da adottare?