newutente ha scritto:
Ciao, come da titolo sto valutando l'inizio dello studio di un framework tra Hibernate, Struts e Spring, magari non da fare nell'immediato però volevo farmi un'idea.
A vostro avviso qual è il più richiesto nel mondo del lavoro? Ok, servono tutti ma dovendo cominciare con uno voi da quale iniziereste?
Dando un'occhiata agli annunci di lavoro mi sembra di aver capito che quello più richiesto è Spring ma vorrei un vostro parere per iniziare nel migliore dei modi.
Allora, partiamo dai requisiti che servono per ciascuno dei tre.
Hibernate: serve chiaramente avere conoscenze sui database relazionali e il linguaggio SQL. Serve anche una buona base su JDBC. Gli ORM nascondono parecchio ciò che sta "sotto", sia riferito a SQL, sia alla API JDBC. Se però conosci bene queste cose, chiaramente sei avvantaggiato in quanto capisci cosa c'è dietro a tutto il motore degli ORM. E vedendo le query generate (le puoi loggare) puoi valutarle e verificarne le prestazioni.
Se vuoi affrontare Hibernate, serve assolutamente un buon libro e oltretutto in inglese (dubito che trovi qualcosa di aggiornato e/o utile in italiano).
Struts: è un presentation framework, che sta sostanzialmente al di sopra delle API delle Servlet. A differenza di altri framework, Struts NON "nasconde" lo strato delle Servlet. Con Struts è abbastanza tipico e frequente dover interagire con le varie classi delle Servlet come HttpServletRequest, HttpServletResponse, HttpSession, ecc..
Quindi devi aver ben chiaro tutto il contesto dei "web component" Java EE: Servlet, Filter, JSP, custom-tag. In più XML (è dappertutto, anche nella configurazione di Struts) e chiaramente a livello di presentazione anche tutto ciò che serve lato client, ovvero HTML+CSS+Javascript.
Struts ha i due filoni di versione: 1.x e 2.x. La 1.3 è sicuramente tuttora usato ma se vuoi partire su Struts, considera la 2.x.
Spring framework: è un framework parecchio esteso e compleso, composto di svariati moduli. Se parliamo solo della parte MVC, serve di nuovo avere conoscenze sui web component di Java EE, sicuramente almeno Servlet e JSP. Inoltre serve molto XML e anche le annotation di Java, poiché sono ormai molto usate sia per la configurazione di Spring, sia ad esempio nei controller e in altre entità.
Se devi anche sviluppare le parti di "view", di nuovo serve tutto ciò che viene usato lato client, ovvero HTML+CSS+Javascript.
Se vuoi affrontare Spring, serve un ottimo libro, sempre in inglese, possibilmente quelli della Manning o della Apress.