Google Guice - Just-in-time Bindings
Ponieważ powiązania są zdefiniowane w module powiązań, Guice używa ich, gdy zachodzi potrzeba wstrzyknięcia zależności. W przypadku braku powiązań może podjąć próbę utworzenia powiązań just in time. Powiązania obecne w module powiązań są wywoływaneExplicit bindings i mają wyższy priorytet, podczas gdy nazywane są wiązania just-in-time Implicit bindings. Należy zauważyć, że jeśli oba typy powiązań są obecne, do mapowania są brane pod uwagę jawne powiązania.
Przykłady trzech typów powiązań Just-in-Time podano poniżej -
Sr.No. | Typ i opis wiązania |
---|---|
1 | Konstruktory iniekcyjne
Konstruktory nieprywatne i bez argumentów kwalifikują się do powiązań just in Time. Innym sposobem jest dodanie adnotacji do konstruktora za pomocą adnotacji @Inject. |
2 | @ImplementatedBy annotation
Adnotacja @ImplementatedBy informuje guice o klasie implementacji. W takim przypadku nie jest wymagane żadne powiązanie w module powiązania. |
3 | @ProvidedBy annotation
Adnotacja @ProvidedBy informuje przewodnik o dostawcy klasy implementacji. W takim przypadku nie jest wymagane żadne powiązanie w module powiązania. |