Good questions. I decided to write this book because I was not having much success as an EJB developer. You can read an article called "Don't Make me Eat the Elephant Again" at java.net, and that sums up the experience well for me.
- You can get the toc at the O'Reilly site. We actually have the preface on line there, and there are a few sample chapters at the server side as well. The core principles are simplicity, focus, transparency, foundations, and extensibility. We address each of these, and then measure Hibernate and Spring against those criteria, and then show an application.
- Definitely recommend Spring and Hibernate for enterprise applications. If your relational model is different from your data model and is highly normalized, you may get better milage out of Kodo JDO instead, but Hibernate is ideal for many applications.
- Read "Don't Make me Eat the Elephant Again" on java.net for answer to EJB 3. It's better, but a lightweight container plus, say, Hibernate, is better still for most simpler applications.
- Annotations in EJB 3 are overused. Combines too much metadata into the code that should be broken out, and also couples container with annotations.
- New API is very good move. See elephant article at java.net.