Aktywne Wpisy
kontodlabeki +137
chłop doda zdjecie klaty: ok
ja dałam kawałek kolana i to ubranego i jestem atencyjnym szonem, eh wykopki co mam powiedzieć, żałośni jesteście ogółem
ja dałam kawałek kolana i to ubranego i jestem atencyjnym szonem, eh wykopki co mam powiedzieć, żałośni jesteście ogółem
ProDziekan69 +3
Czy ktoś z was trzyma samochód o wartości 110k + pod „chmurką” ? Nie będę płacił deweloperowi 40k za parking podziemny, nie #!$%@? mnie jeszcze . #samochody #nieruchomosci #audi
Inspiracją techniczną było to narzędzie: TinyDi oraz Guice.
- Co udało mi się zrobić:
1. mapowanie interfejsów na implementacje, w tym interfejsów z generic parameters
2. singletony (jak wyżej)
3. mapowanie danego interfejsu na klasę implementaującą java.funtion.Supplier
- Co chciałbym jeszcze na pewno zrobić (kolejność przypadkowa):
- dodać rozsądne zarządzanie wyjątkami i czytelne komunikaty dla użtykownika API (np. gdy instancjowana klasa nie ma odpowiedniego konstruktora itp.)
- organiczyć rozmiar jaru (teraz ładowany jest cały guava-collections ze względu na klasę Multimap).
- dodać możliwość mapowania parametryzowalnego interfasju na klasę implementującą Supplier.
- wytestować wszystko możliwie jak najdokładniej :-))
- dopisać na GitHubie podstawową dokumentację i przykłady użycia.
Zdecydowałem, że DI będzie odbywać się wyłacznie przez konstruktor. Z tego też powodu framework nie pozwala i otwarcie sprawdza, czy wśród mapowanych obiektów nie ma zależności cyklicznych - jeśli taka się znajdzie rzucany jest wyjątek CircularReferenceException.
Konstruktor, w który mają być wstrzyknięte zależności musi być opisany standardową annotacją javax.inject.Inject.
Wdzięczny będę niezwykle za wszelkie uwagi i podpowiedzi :-)
Cały kod dostępny jest na GitHubie.
Mi na studiach kazano napisać aplikację w Servletach bez gotowych frameworków, to postanowiłem sobie napisać swoje MVC (⌐ ͡■ ͜ʖ ͡■)
Nawet całkiem to zaczynało działać, ale ostatecznie zmienili zdanie i pozwolili skorzystać z JSF. Stwierdziłem, że warto jednak liznąć podstawy czegoś bardziej praktycznego.
Aczkolwiek fajna i kształcąca zabawa. Jeszcze do tego wrócę i skończę chociaż najważniejsze funkcjonalności :)