Hi everyone, i' am a student of computer science in Milan (Italy) and now i have to do a final project for my thesis, it uses an MVC pattern. The important is to learn a work-request and useful technology. I can choose the technology to use but i am quite frustrated doing it; all j2ee thecnology are evolving so quickly that is difficult to follow the scene. I started studying EJB ( they are quite boring and twisted ) then i deepened STRUTS and JSTL. Now i ' m learning Hibernate because i do not Entity Beans, they are not friendly . I haven' t yet found the technology that is ok for my feeling an so i ask you a hint for not lost the right road.
For presentation layer i found good STRUTS (i know it is old but it is tested and functional, i found it nice) and also seems that JSF don' t has a large use and a greate improvemet.
The problem is the Model Layer. So i give you some "existential" questions.
*EJB 2.1 + xdoclet seems exceeded and dont' like it; it is however best to use it because IDE and support is better tested and more diffusd?
*I heard about Spring as a new filosophy, i must belive on it?
*It is good to study Spring or now is the moment for EJB 3?
*Than, if i study EJB 3 i must improve also Hibernate 3 or is inside Ejb technology?
With my limited knowledge I will try to answer some of your qeries. Spring in just a framework like Struts for rapid web application development. My personal opinion is Spring is much powerful than other frameworks. The design principles employed are simple, lightweight and straight forward.
Spring can use concurrently with EJB as well. Its not a replacement for EJB. Its make the developement and Integration of web applications much easier, Moreover Spring's designers have taken in to account some of the design fallacies with EJB.
Also now a days, people are using Spring because they are realising the power of Spring, and in my opinion its a better framwork to learn and time you spend in this is going to be a better investment.
EJB 3.0 is just in its beta state and so may be a good option for research kind of study. Sun Spec commitee is still working on it and JBOSS has already implemented the EJB3.0 spec in JBoss AS 4.0 version. Also its not a replacement tech for Spring.
I'm not a spring specialist.. I will just speak about my own experience...
I will reply according to what we usually use in my company. The typical architecture we are using : - Database : PostgreSQL because it can easily deal with 1 GB database. - Persistence layer : Hibernate because it's easy, efficient and don't miss any features (unlike CMP). - Services layer : Session EJB because they handle transactions, security and communications. - Presentation layer : Struts because it's an industry choice but we plan to move to JSF.
*EJB 2.1 + xdoclet seems exceeded and dont' like it; it is however best to use it because IDE and support is better tested and more diffusd?* We really love XDoclet to develop our stateless bean. We don't have IDE support for it but it's not really needed. Our statless bean source looks like POJO thanks to xdoclet.
*I heard about Spring as a new filosophy, i must belive on it? * Seems it's quite nice indeed...
*Than, if i study EJB 3 i must improve also Hibernate 3 or is inside Ejb technology?* I'm not sure if the question but i think u should concentrate on Hibernate 3 and wait for the EJB spec to be "done".