Możesz dodać Spring do swojej listy frameworków Dependency Injection, które rozważasz. Oto kilka odpowiedzi na Twoje pytania:
Połączenie z ramą
Pico - Pico ma tendencję do zniechęcania do wstrzykiwania setera, ale poza tym twoje zajęcia nie muszą wiedzieć o Pico. Musi wiedzieć tylko okablowanie (prawda dla wszystkich frameworków DI).
Guice - Guice obsługuje teraz standardowe adnotacje JSR 330 , więc nie potrzebujesz już adnotacji specyficznych dla Guice w swoim kodzie. Spring obsługuje również te standardowe adnotacje. Argument, którego używają faceci z Guice, jest taki, że bez uruchomionego procesora adnotacji Guice nie powinny one mieć wpływu, jeśli zdecydujesz się użyć innego frameworka.
Spring - Spring ma na celu uniknięcie jakichkolwiek wzmianek o frameworku Spring w kodzie. Ponieważ mają wiele innych pomocników / narzędzi itp., Pokusa polegania na kodzie Spring jest jednak dość silna.
Występ
Pico - nie jestem zbyt zaznajomiony z charakterystyką szybkości Pico
Guice - Guice został zaprojektowany tak, aby był szybki, a porównanie wymienione w referencji ma kilka liczb. Z pewnością, jeśli szybkość jest głównym czynnikiem, należy rozważyć użycie Guice lub okablowania ręcznie
Wiosna - Wiosna może być powolna. Pracowano, aby było to szybsze, a użycie biblioteki JavaConfig powinno przyspieszyć działanie.
Łatwość użycia
Pico - prosty w konfiguracji. Pico może podjąć za Ciebie decyzje dotyczące autoprzewodów. Nie jest jasne, jak to skaluje się do bardzo dużych projektów.
Guice - Prosty w konfiguracji, wystarczy dodać adnotacje i dziedziczyć z AbstractModule, aby łączyć rzeczy ze sobą. Dobrze się skaluje do dużych projektów, ponieważ konfiguracja jest ograniczona do minimum.
Spring - stosunkowo łatwa w konfiguracji, ale większość przykładów używa Spring XML jako metody konfiguracji. Pliki Spring XML mogą z czasem stać się bardzo duże i złożone, a ich ładowanie może zająć trochę czasu. Aby temu zaradzić, rozważ użycie mieszanki Springa i ręcznego zastrzyku Dependency Injection.
Rozmiar społeczności
Pico - mały
Guice - średni
Wiosna - duża
Doświadczenie
Pico - nie miałem dużego doświadczenia z Pico, ale nie jest to powszechnie używany framework, więc trudniej będzie znaleźć zasoby.
Guice - Guice jest popularnym frameworkiem i skupienie się na szybkości jest mile widziane, gdy masz duży projekt, który często restartujesz w trakcie opracowywania. Martwię się rozproszonym charakterem konfiguracji, tzn. Nie jest łatwo zobaczyć, jak składa się cała nasza aplikacja. Pod tym względem jest trochę jak AOP.
Wiosna - Wiosna to zazwyczaj mój domyślny wybór. To powiedziawszy, XML może stać się uciążliwy, a wynikające z tego spowolnienie denerwujące. Często używam kombinacji ręcznie wykonanego Dependency Injection i Spring. Kiedy faktycznie potrzebujesz konfiguracji opartej na XML, Spring XML jest całkiem niezły. Spring włożył również wiele wysiłku w uczynienie innych frameworków bardziej przyjaznymi dla Dependency Injection, co może być przydatne, ponieważ często używają przy tym najlepszych praktyk (JMS, ORM, OXM, MVC itp.).
Bibliografia