Java 8 ha aggiunto una nuova funzionalità grazie alla quale è possibile fornire l'implementazione del metodo nelle interfacce. C'è un modo in Spring 4 con cui possiamo iniettare i fagioli nell'interfaccia che può essere usata all'interno del corpo del metodo? Di seguito è riportato il codice di esempioJava 8 e Spring 4: utilizzo dell'autowiring nell'interfaccia
public interface TestWiring{
@Autowired
public Service service;// this is not possible as it would be static.
//Is there any way I can inject any service bean which can be used inside testWiringMethod.
default void testWiringMethod(){
// Call method of service
service.testService();
}
}
Non è possibile creare un'istanza di un'interfaccia. Come ti autowire un campo in esso? – Tunaki
Desidero utilizzare i servizi gestiti a molla nel mio corpo del metodo. Un modo è utilizzare il metodo ApplicationContext.getbean ("), ma sto cercando qualsiasi funzione in Spring 4 che possa sfruttare per l'iniezione di bean gestiti in Spring nell'interfaccia. L'interfaccia sarebbe implementata da alcuni bean. Quindi dovrebbe essere disponibile in la classe di implementazione Per impostazione predefinita poiché i membri dell'interfaccia sono statici finali, quindi non posso utilizzare direttamente @autowiring. –
DI in Spring funziona impostando le dipendenze nel costruttore (iniezione costruttore) o tramite proprietà (setter injection). interfaccia, non hai un costruttore, né variabili di istanza (le variabili dichiarate in un'interfaccia sono 'static final'), quindi non c'è modo di iniettare nulla. – Ruben