POJO Application Frameworks: Spring Vs. EJB 3.0
Subject:   Fatally Flawed Article
Date:   2005-07-12 00:56:43
From:   MichaelYuan
Response to: Fatally Flawed Article

Let me just say this:

1. This article is an opinion. It is not labeled as an "objective study" from a research firm. This represents my own view on the Spring versus EJB 3 debate. However, I do not consider my employment at JBoss has anything to do with it. JBoss is not even the spec leader in EJB 3.0 -- for god's sake! I did not shill for JBoss proprietary technology (like JBoss AOP or Hibernate). I am talking about "standards" here.

Plus, I did not attempt to disguise my employment at JBoss -- as the other poster found out, it is right there on my home page.

2. "Proprietary" means "non-standard" in the context of this article. You can have open source but yet proprietary products. Yes, as you point out, JBoss also have proprietary open source products that would lock you into JBoss (just like Spring is locked into Int21). But I am talking about EJB 3.0 here -- not JBoss's specific extensions. So that argument does not apply.

3. I gave Spring credit for pioneering DI. There is no question here. In fact, EJB 3 got many of its ideas from Spring. However, I am talking about the whole application's dependency on the framework here -- the integration piece. Spring ties you to a specific vendor. EJB 3.0 does not. That is a key point from the article.

4. EJB 3.0 exists today and I have seen people use it in product.


Main Topics Oldest First

Showing messages 1 through 2 of 2.

  • Fatally Flawed Article
    2005-08-05 10:28:46  shadeltd [View]

    First, let's set up some vocabulary.

    Standard - "regularly and widely used" (

    Proprietary - "Something proprietary is something exclusively owned by someone, often with connotations that it is exclusive and cannot be used by other parties without negotiations." (

    These are appropriate definitions of some key words you've used in your article. Instead of saying Spring is "non-standard", you should say Spring doesn't have a JSR. When you use "non-standard" in a way that violates its basic meaning, you give a false impression of reality. By your use of "non-standard", Struts and Hibernate (and even Shale) would be out of the running when they clearly are "regularly and widely used". Spring is standard as well, though like the others, it doesn't have a JSR.

    As for proprietary, consider the nuance that this word holds, "connotations that it is exclusive and cannot be used by other parties without negotiations". Most proprietary APIs by vendors like BEA require "negotiations" in the form of payment, and are therefore not open to use by all. There are no such exclusive restrictions on Spring. In fact, most code that uses Spring for DI can throw Spring out entirely and substitute it for another service that performs creation and relationship management. Spring was intentially written so that your code *did not* rely on it. I've demonstrated this several times to people using real code. So in the sense that proprietary can "lock you into" something, Spring doesn't fit the bill there either. Your code can be wired up with your own home brewed thing or with a competing product. No lock in.

    Your use of "non-standard" and "proprietary" isn't a fair representation of Spring. So instead of casting Spring in the "it's evil because it doesn't have a JSR" corner, let the other points of your article stand out to show why you feel EJB 3 is a better solution. You have a valid point of view, and you've got compelling examples. Keeping your nuances straight will help you stay out of the emotional argument and write a more convincing article next time around.

    Missing a JSR isn't that big of a deal, I use stuff without JSRs all the time, so your focus there is misapplied. Your points under Service Integration, Flexibility in Service Assembly, and XML Versus Annotation offer the substance of your argument. While I don't share your views, I think all well thought out opinions should be discussed.

    Thanks for listening.

  • Fatally Flawed Article
    2005-07-12 07:37:29  TS133T [View]

    I donít understand which standards we are talking about.

    All spring is an AOP and IOC framework. Once Sun standardizes them than we can talk about standards.