Discussions

General J2EE: Spring vs JEE

  1. Spring vs JEE (10 messages)

    Hi, Today when companies have to create a Java development environment, what is the best way to go? Let’s say that a senior team would maintain this environment, and that this environment would spread everywhere in the company for creating every web applications (Intranet, Internet, ....). That’s why the choice of this environment is so important as it won’t change for the next 5 or 10 years. Today I see 2 solutions: 1. The unspecified Java solution: Tomcat web server + Spring Framework (MVC, ...) 2. The specified professional JEE solution: A JEE app server (Glassfish, Jboss or Websphere,...) + an MVC framework (Spring, or Struts2, ...)

    Threaded Messages (10)

  2. Re: Spring vs JEE[ Go to top ]

    I bet my money on Spring. Easy to test, easy to deploy and no need a EJB Container...
  3. Spring, no doubt[ Go to top ]

    Spring is definitely the simplest approach. JEE brings so much complexity and unnecessary overhead. JEE might be a standard, but Spring is quickly becoming de-facto.
  4. Re: Spring, no doubt[ Go to top ]

    EJB 3.0 seems not so complicated, comparing with EJB2.1. I prefer to JEE :)
  5. Re: Spring vs JEE[ Go to top ]

    With eclipse and an application server (JBoss or other) you don't need an additional container like Spring. Using spring is like saying: I'm putting my car on a loading space of my truck. Because: - My Truck is cool. - My Truck is easy to use. - You are flexible to change the car on the loading space. - The control of the truck is a de facto standard. I think, spring will retire next year!
  6. Re: Spring vs JEE[ Go to top ]

    I will obviously vote for JEE specification. One major reason would be that the technology will be known to any new comer hence he could be more productive. If you choose standard products like Websphere, you will get support at various points. Migration in the future will be very easy. I do not suggest to lock to particular vendor but stick to JEE.
  7. Re: Spring vs JEE[ Go to top ]

    That’s what I expected. It’s almost fifty/fifty. It’s a shame because at the beginning, Spring was used for small appz, when you wanted to avoid the full JEE stack. And that was a good idea as it was an effective compromise that allowed you to use part of the JEE APIs at low cost. But today it’s even used in huge applications as a substitute for JEE. And there I disagree. My personal opinion is that : - Spring is not a specification but a bunch of well written APIs. So you can use it in different ways according to documentations and experiences you get from the Net. But there’s no right way. - JEE was written to establish a normalized application server that manage the redundant technical part ( object pooling to improve performances, manage transaction and distributed transaction, standardized synchronous and asynchronous communication, allow the ability to move components easily to a different server to ensure scalability, persistence mapping, and so on... ) so that developers focus on the functional part that differs. In my opinion, this general idea that makes us more productive cannot be argued. - JEE app server can save you’re xxx in production. The exploitation and customization of your application is much more effective than on a simple web server. - At the beginning, Spring was created to be a simple alternative to JEE for small appz. Today it’s a complete heavy framework that includes a huge complexity. Is it simpler than JEE... Honestly, I don’t think so. - JEE has made some mistakes (2.0/2.1 BMP/CMP EJBs...). But the specification has evolved to correct those mistakes by including other solutions that were more effective. Great lesson of life. - Thousands of JEE applications are currently in production. The spec is widely implanted: We’ll be able to find JEE developers and architects for years to come. Spring is just a framework that tends to normalize, and plans to specify a platform. And what if Spring was just a trendy framework? - From my experience, in the past, many applications have used session EJBs when not necessary. But for the 3 last years I’ve seen dozens of appz that where using Spring IoC. Every POJOs are smartly wired via interfaces. But did I ever use this DI to change the implementation of a POJO except for mocking? No, never! - The JEE community has always been extremely active (Dozens of solutions and framework) and that often is a good thing. But in the end, we have tow concurrent implementations to solve the exacts same problems. The only result of this none sense fight is that the .NET platform appears to be stronger. Microsoft is smiling, with its unique specified framework. And if Java has lost the fight for light web applications vs PHP... I hope that it will be more effective for enterprise applications. That is just my personal opinion. Please feel free to comment.
  8. Simplicity above all[ Go to top ]

    Greetings, First I would like to define one of my guiding principles, which is relevant to most things in life: use the minimum and most simple tool you can to perform a task. So as it should be clear now, I am a big fan of Spring. Think of it this way: if your application only needs a DI and web framework, why install and maintain a full JEE server? And whatever services that you would require from such a server are available to you in Spring with two exceptions: 1) you have the freedom to choose which services you want to include in your application by simply including the appropriate JAR, so there are no services that you don't use that just take out memory, 2) in many cases the API is more elegant than in EJB (at least in my opinion). About the standards stuff people always like to mention as the cons of Spring I want to ask: how is Spring different from any other third party library people use such as Struts, iBatis and Hibernate? If people followed that logic they shouldn't have used Struts, but plain Servlets and JSP. Can you imagine a developer at a job interview says something like "I never used Struts because I wanted to stick to the standards so just Servlets for me"? And believe me, if a developer that knows EJB 3.0 and never touched Spring needs more than a few days to learn Spring to a moderate level, you don't want him/her on your team. One more thing about the "vendor neutrality" - you can take a Spring based application and port it between different servers, but if you want to port EJB code you must not use any vendor-specific extensions, which is one of the main points in having multiple vendors, and using such extensions is just like using any third party library (like Spring!). Hope I've helped.
  9. Re: Simplicity above all[ Go to top ]

    use the minimum and most simple tool you can to perform a task. good point!
  10. Re: Simplicity above all[ Go to top ]

    Yes, this is a good point! But the author uses spring as an additional tool... So the conclusion "use spring" is not correct. If you use Spring with EJB 3, you have two tools with dependencies between this tools.
  11. JEE is the way to go[ Go to top ]

    In 2008 the answer might have been different but I stumbled on this.  At this point JSF based JEE application is easier to implement than Spring.