Domanda

Ho un legante differito personalizzato (implementazione del rimpasto) che istanzia gli oggetti. Vorrei avere alcune dipendenze (metodi di setter annotati @Inject) all'interno dell'istanza restituita da GWT.Create () soddisfatta da Gin. È possibile?

Quindi, dato codice come:

Foo foo = GWT.create(Foo.class);

Se l'implementazione finale di Foo ha:

@Inject
public void setBar(Bar bar) {
    ...
}

Come posso essere iniettato bar nell'istanza Foo restituita automaticamente da Gin?

È stato utile?

Soluzione

Il tuo ginjettore può avere metodi aggiunti ad esso allo scopo di iniettare oggetti creati in qualche altro modo. Questi devono prendere un argomento e dovrebbero specificare il tipo più specifico possibile. Ad esempio, se MyViewImpl estende BaseView ed entrambi i tipi hanno dipendenze da iniettare, ma si dichiara

void injectBaseView(BaseView view);

Nel tuo ginjettore, verranno trattati solo i campi/setter dichiarati su BaseView.

EDIT: Inoltre, se non viene dichiarato alcun legame, GWT.Create verrà utilizzato per creare un'istanza, in modo da poter avere la tua torta e mangiarla. Un'eccezione a quella per quanto posso ricordare, è quando si desidera GWT.Crea un tipo, ma restituisci un altro (vedi interfacce RPC per un esempio).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top