Wstrzykiwanie zależności z Guice
W tym ćwieczeniu wykorzystamy bibliotekę Guice do tworzenia instancji klasy School, która powinna mieć zaincjalizowaną referencję do odpowiedniego persistance managera.
- Zdefiniuj zależności w klasach instancjonowanych przez kontener Guice. Wykorzystaj adnotację
@Injectdo oznaczenia konstruktorów, pól lub metod. - Dodaj pakiet
pl.edu.agh.school.guice. - Utwórz w nowym pakiecie klasę
SchoolModule, która będzie zawierać konfigurację kontenera IoC. Klasa ta będzie m.in. definiować tzw. bindingi pomiędzy typami (interfejsami i klasami je realizującymi). KlasaSchoolModulerozszerza klasęcom.google.inject.AbstractModule. - Zaimplementuj metodę
providePersistenceManager(), tak aby kojarzyła implementacjęSerializablePersistenceManagerz interfejsemPersistenceManager(zobacz więcej: https://github.com/google/guice/wiki/LinkedBindings (opens in a new tab)). - W klasie
SchoolDemoutwórz nowy obiekt kontener (injector) i wykorzystaj go to utworzenia obiektuSchool. (zobacz więcej: https://github.com/google/guice/wiki/GettingStarted#guice-injectors (opens in a new tab)) - Uruchom program i sprawdź czy daje takie same wyniki jak przed rozpoczęciem ćwiczenia.