This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Thanks for your questions. From my perspective, I believe the book does a good job at explaining the topics covered. In addition, the format of Packt's Cookbooks makes it easier to find the topics of interest and is organized to explain how to perform a task and then how it works. If you understand the how part, the how it works section can be scanned or skipped. I believe the book is better suited for the reader who is learning EJB 3.1 as opposed to the more experienced developer. I find this to be the case with most books. If I am actively engaged in a technology, or version of the technology, then I have probably ran across most of what is found in a book. For the more experienced EJB 3.1 developer, books of this nature are useful in filling in any holes in one's education. In the case of this book, the chapter on interceptors, for example, can be useful if the reader has not worked in that area.
From the perspective of an EJB 2.0 developer, I think that the extensive integration of annotations in EJB 3.0 and 3.1 is a significant improvement over 2.0. The book illustrates the use of these annotations and gives a good idea of what is possible. From your perspective, I would think this would be of greatest benefit to you.
The creation of a good EJB application, and for that matter any application, comes down to how well it is structured and how well it uses the underlying technology. The best structure is one that is simple but not too simple. It uses the most appropriate design patterns and addresses the different aspects of the application completely. With that said, most of that is dependent on the nature of the application. From an EJB standpoint, the use of interceptors can go a long way to enhance the structure of an application. It permits the methods to contain the business logic and allows orthogonal applications issues to be addressed outside of the method. Annotations goes a long way in addressing these types of issues for the more common aspects of the application such as transactions and security.
With regards to the question, what are the most used items of this technology in EJB applications, I cannot answer that one. I suspect it all depends on the application. Also, Spring is a useful technology that works quite well for many organizations. The following link provides a good overview of the two technologies that you may find useful: http://www.rushk.com/spring-vs-ejb/.