I'm "child of heavy technology EJB" and almost everything I was doing in my previous company was based on EJB and MQ.
Now I’ve changed company, they have instead of few big “flag” webapps lots of small and light ones (and the new ones are now in first stages of analyses so we can choose technology) . It’s clear that old approach is wrong – there is no need for heavy EJB.
So there are 2 choices:
- develop apps in Spring 3.0
- choose known for me solution (EJB 3.x) but choose EJB Light spec (that one which doesn’t need app container, which cuts of from EJB2.0 standard, that has no MDB, …)
And here is my question: What are advantages of new Spring 3.0 over new EJB Light spec (3.1) and why I should choose something new (Spring) and not use something that I know, I’ve worked it for years.
as far as I know, there's no implementation (at least in GA) of the Web profile, so it means that if you want to go with EJB 3.1 Lite, you'll need a full-blown Java EE 6 server. With Spring 3.0 (or less), you can go anywhere :-)
Arnaud Cogoluegnes wrote:as far as I know, there's no implementation (at least in GA) of the Web profile, so it means that if you want to go with EJB 3.1 Lite, you'll need a full-blown Java EE 6 server. With Spring 3.0 (or less), you can go anywhere :-)
Maybe in now not, but in 3-4 monts (now we have design stage, so all paper work, client acceptance, changes, acceptance, ... will take at least 2-3 monts) there should be for example glassfish implementation.
And I think that in near future my question will be very important - which technology is better, and why (what are adventages, disadventages, which one has better support in developers tools, which is simplier [yes - its very important because easier technology usually means quicker = cheaper development phase]). And second part - which is simplier for creating automative tests (EJB 3.1 will be suported by openejb)
well, I think you can try now because Glassfish comes with a Web profile bundle actually (spoke too fast in my previous post :-) )
anyway, I don't think that one technology is better than the other: they have a quite similar programming model for the basic stuff (e.g. typical enterprise applications). Being used to Spring, I tend to prefer its portability, flexibility and its support for various dependency injection features (XML, annotations, Java, all of them) and of course, all the features offered by its portfolio projects.
Łukasz Suchecki wrote:And second part - which is simplier for creating automative tests (EJB 3.1 will be suported by openejb)
I think both are comparable for automated testing.
As far as which technology is better in the future, it's too early to say. I think it will depend on vendors tools as to how well EJB 3.1 lite can compete with Spring. And Spring has a giant head start. If Spring innovates while EJB is catching up, it gets even further ahead.