Zaczynam nowy projekt w Javie i zastanawiam się nad Springem. Dlaczego rozważam wiosnę? Ponieważ wiele osób mówi mi, że powinienem użyć wiosny! Poważnie, za każdym razem, gdy próbuję nakłonić ludzi do wyjaśnienia, czym dokładnie jest Wiosna i co ona robi, nigdy nie mogą dać mi prostej odpowiedzi. Sprawdziłem wprowadzenie na stronie SpringSource i są one albo bardzo skomplikowane, albo koncentrują się na samouczkach, i żadne z nich nie daje mi pojęcia, dlaczego powinienem z niego korzystać ani w jaki sposób ułatwi to moje życie. Czasami ludzie rzucają się wokół terminu „wstrzyknięcie zależności”, co jeszcze bardziej mnie dezorientuje, ponieważ myślę, że inaczej rozumiem, co to pojęcie oznacza.
Tak czy inaczej, oto trochę o moim pochodzeniu i mojej aplikacji:
Od jakiegoś czasu rozwijam się w Javie, robiąc back-endowe tworzenie stron internetowych. Tak, przeprowadzam mnóstwo testów jednostkowych. Aby to ułatwić, zazwyczaj tworzę (przynajmniej) dwie wersje metody: jedną, która wykorzystuje zmienne instancji, i jedną, która wykorzystuje tylko zmienne przekazane do metody. Ten, który używa zmiennych instancji, wywołuje drugi, podając zmienne instancji. Kiedy przychodzi czas na test jednostkowy, używam Mockito, aby wyśmiewać obiekty, a następnie wywołuję metodę, która nie używa zmiennych instancji. To właśnie zawsze rozumiałem jako „zastrzyk zależności”.
Moja aplikacja jest dość prosta z punktu widzenia CS. Mały projekt, od 1 do 2 programistów. Przeważnie operacje typu CRUD z wrzuconą wyszukiwarką. Zasadniczo kilka usług sieciowych RESTful oraz interfejs internetowy, a następnie niektórzy klienci mobilni. Zastanawiam się nad stworzeniem front-endu w prostym HTML / CSS / JS / JQuery, więc nie ma prawdziwych planów korzystania z JSP. Używanie Hibernacji jako ORM i Jersey do implementacji usług sieciowych.
Już zacząłem pisać kodowanie i bardzo chcę uzyskać wersję demonstracyjną, którą mogę kupić i sprawdzić, czy ktoś chce zainwestować. Oczywiście czas jest najważniejszy. Rozumiem, że Spring ma dość krzywą uczenia się, a ponadto wygląda na to, że wymaga całej konfiguracji XML, czego zwykle staram się unikać jak zarazy. Ale jeśli może to ułatwić moje życie i (zwłaszcza) sprawić, że rozwój i testowanie będą szybsze, jestem gotów ugryźć kulę i nauczyć się Wiosny.
Więc proszę. Naucz mnie. Czy powinienem używać wiosny? Dlaczego lub dlaczego nie?