[Originally posted 12-May-2004]

I’ve been using this book for over a year now as a reference on doing J2EE development. Not just coding – but coding *well*. So far, it’s proving to be an excellent resource.

First, for you non-Java types – J2EE stands for Java 2 Enterprise Edition. It’s a set of technologies (Java-based) that allow developers to write applications that do wonderful things, like let you bank online with Bank of America. Get it? No? Skip this post, let the geeks read on.

Author Rod Johnson has taken on the unenviable task of writing about how to do J2EE development and do it well. One of the single biggest reasons that Java projects fail are the “developers” (I use that term loosely in this case) developing them. Java is a great language. The problem is that about 80% of the people programming in it seem to have come from the Visual Basic world – or are not Object-Oriented developers. As a result they lack any concept of the usage of good Object Oriented design principles. They also use bad programming practices, like putting business logic in JSP files because that’s what they did when they wrote ASP pages. For those who are curious, this is called Model 1 development – as opposed to Model 2 or MVC development.

If this sounds like you, throw your ego out the Window and get this book. Rod starts off with providing a foundation of information on best practices to use when designing J2EE systems that fully embraces Object-Oriented principles and methodologies. Rod also recommends testing tools and methodologies. Rod also explains the best uses for Enterprise JavaBeans. While most EJB books explain the *how*, Rod explains the *why* and sometimes also explains the “why not” for using EJBs. Rod admits he’s not an EJB fan and fortunately for readers he’s still fair and balanced in the coverage of using EJBs in this book.

Rod also provides an excellent utility framework that later evolved into what’s now called the Spring Framework (see link below to the Spring homepage). Unfortunately, the anti-EJB crowd has largely influenced Rod since the writing of this book and Spring is now touted by some (it seems including Rod) as a *replacement* to EJB (which it’s not) rather than as a supplement to EJB and J2EE development (something that Spring excels at).

My only complaint about the book is that I would have liked a little more information and discussion into the Design Patterns that he uses and covers in this book. He saids you don’t need to read or know about Design Patterns in order to use his book. He says it’s merely “recommended reading”. However that’s blatant nonsense. When he’s talking about bean factories (using a type of pattern called the Factory pattern) you’ll be lost if you’ve never studied Design Patterns.

So if you’re new to Design Patterns, quit programming in Java NOW and go back to Visual Basic – you’re killing my bill rates! However, if you’ve done some cursory reading on patterns, this book won’t provide you enough, go find a book on Design Patterns. The Addison Wesley (the “Gang of Four”) title is good, but C-based – look for a Java based title.

Expert One-on-One: J2EE Design and Development

The Spring Framework Page