Quindi, sto iniziando un nuovissimo progetto in Java e sto pensando di usare Spring. Perché sto considerando la primavera? Perché molte persone mi dicono che dovrei usare Spring! Scherzi a parte, ogni volta che ho cercato di convincere le persone a spiegare cosa sia esattamente Spring o cosa faccia, non possono mai darmi una risposta diretta. Ho controllato le introduzioni sul sito SpringSource e sono o molto complicate o focalizzate sul tutorial, e nessuno di loro mi dà una buona idea del perché dovrei usarlo o di come mi semplificherà la vita. A volte la gente getta il termine "iniezione di dipendenza", che mi confonde ancora di più, perché penso di avere una diversa comprensione di cosa significhi quel termine.
Comunque, ecco un po 'del mio background e della mia app:
Sviluppo in Java da un po ', facendo sviluppo web back-end. Sì, faccio un sacco di test unitari. Per facilitare ciò, in genere realizzo (almeno) due versioni di un metodo: una che utilizza variabili di istanza e una che utilizza solo variabili passate al metodo. Quello che utilizza le variabili di istanza chiama l'altro, fornendo le variabili di istanza. Quando arriva il momento di unit test, uso Mockito per deridere gli oggetti e quindi effettuare chiamate al metodo che non utilizza le variabili di istanza. Questo è quello che ho sempre inteso essere "iniezione di dipendenza".
La mia app è piuttosto semplice, dal punto di vista CS. Piccolo progetto, 1-2 sviluppatori per cominciare. Principalmente operazioni di tipo CRUD con una serie di ricerche inserite. Fondamentalmente una serie di servizi Web RESTful, oltre a un front-end Web e infine ad alcuni client mobili. Sto pensando di fare il front-end in HTML / CSS / JS / JQuery, quindi non ho intenzione di usare JSP. Utilizzo di Hibernate come ORM e Jersey per implementare i servizi Web.
Ho già iniziato a scrivere codice e sono davvero impaziente di avere una demo là fuori che posso fare shopping e vedere se qualcuno vuole investire. Quindi ovviamente il tempo è essenziale. Capisco che Spring abbia abbastanza la curva di apprendimento, inoltre sembra che richieda un sacco di configurazioni XML, che in genere cerco di evitare come la peste. Ma se può semplificarmi la vita e (soprattutto) se può rendere più veloce lo sviluppo e i test, sono disposto a mordere il proiettile e imparare la primavera.
Quindi per favore. Educami Dovrei usare la primavera? Perché o perché no?