adam bien's blog

EJB 3.X ...the Consultants Killer 📎

I got some requests to summarize my appreciation for EJBs. I wrote already some posts, so I will keep it briefly;
  1. There are no dependencies to external frameworks, libraries etc. Your project consists only of your sourcecode and few annotations needed for compilation.
  2. Because of 1. your code is independent of the infrastructure.
  3. Because of 1. there are no conflicts with already existing frameworks on the server
  4. EJB 3 is not a product, but a spec. There are several implementations from SpringSource, WebLogic (Oracle), WebSphere (IBM), Glassfish (Sun), Geronimo (Apache) and probably others.
  5. There is no XML required. Actually with EJB 3 XML descriptors become at least suspicious :-).
  6. Monitoring comes out of the box.
  7. The dependency on the framework is almost zero - in worst case you can just delete the @Stateless, @Local annotations and use something else.
  8. The integration with JPA is superb.
  9. Multithreading issues just do not exist.
  10. The synergy between Convention Over Configuration and Dependency Injection rocks!
  11. EJBs 3.0 are annotated POJOs, they can be easily unit-tested.
  12. ...and most important: developers, who used EJB 3 in projects already, really liked it.


I actually didn't had any problems with EJB 3, except some bugs in some commercial application servers which should be fixed already.
So if you are a consultant, you should put some additional stuff to your EJB 3 project to make it more complicated and you more valuable to your customer :-).
I'm a consultant, but with EJB 3 my "taskforces" became really short. 2 days for bootstraping, creating the infrastructure and built even a small prototype, are absolutely enough.

I will discuss some item next week at the JUG HH - so see you next week in beautiful Hamburg.