Quindi, sto iniziando un nuovo progetto in Java e sto pensando di utilizzare Spring. Perché sto considerando la primavera? Perché molte persone mi dicono che dovrei usare Spring! Seriamente, ogni volta che ho cercato di convincere la gente a spiegare che cos'è esattamente Spring o cosa fa, non possono mai darmi una risposta diretta. Ho controllato le introduzioni sul sito SpringSource, e sono davvero complicate o veramente focalizzate sul tutorial, e nessuna di loro mi dà una buona idea del perché dovrei usarla, o di come mi renderà la vita più facile. A volte le persone gettano il termine "iniezione di dipendenza", che mi confonde ancora di più, perché penso di avere una diversa comprensione di cosa significhi questo termine.
Comunque, ecco un po 'del mio background e della mia app:
Da tempo si sta sviluppando in Java, facendo lo sviluppo web di back-end. Sì, faccio un sacco di test unitari. Per facilitare questo, in genere creo (almeno) due versioni di un metodo: uno che utilizza le variabili di istanza e uno che utilizza solo le variabili passate nel metodo. Quello che usa le variabili di istanza chiama l'altro, fornendo le variabili di istanza. Quando arriva il momento del test unitario, utilizzo Mockito per simulare gli oggetti e quindi effettuare chiamate al metodo che non usa variabili di istanza. Questo è quello che ho sempre capito "iniezione di dipendenza".
La mia app è piuttosto semplice, da una prospettiva CS. Piccolo progetto, 1-2 sviluppatori per iniziare. Principalmente operazioni di tipo CRUD con una serie di ricerche gettate dentro. Fondamentalmente un gruppo di servizi web RESTful, oltre a un front-end Web e poi eventualmente alcuni client mobili. Sto pensando di fare il front-end in HTML / CSS / JS / JQuery, quindi non ho intenzione di usare JSP. Usare Hibernate come ORM e Jersey per implementare i servizi web.
Ho già iniziato a programmare e sono davvero desideroso di ottenere una demo là fuori che possa guardarmi intorno 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ò rendere la mia vita più facile e (soprattutto) se renderla può rendere lo sviluppo e test più veloce, sono disposto a mordere il proiettile e imparare Spring.
Quindi per favore. Educami Dovrei usare la primavera? Perché o perché no?