Free Book: EJB Design Patterns

EJB Design Patterns goes beyond high-level design pattern descriptions into critical EJB-specific implementation issues, illustrated with source code implementations. But remember, there are also some Evil Design Patterns you need to be aware of!

Download the FREE PDF

Download the source code

EJB Design Patterns

The job of the EJB developer is constantly challenging, making the task of designing maintainable and scalable systems difficult without a clear set of best practices to follow. It is with this and other concerns in mind that Floyd Marinescu (Director of J2EE Community) worked with thousands of J2EE professionals on TheServerSide to put their collective knowledge together in order to build a library of design patterns, strategies, and best practices for EJB design and development.

EJB Design Patterns goes beyond high-level design pattern descriptions into critical EJB-specific implementation issues, illustrated with source code implementations. The book contains a catalog of twenty advanced EJB patterns and provides strategies for mapping application requirements to patterns-driven design, J2EE development best practices, and a collection of EJB tips and strategies, and other topics such as Build-System best practices using Ant, JUnit testing strategies, using Java Data Objects (JDO) as an alternative to entity beans, and more.

EJB Design Patterns Topping Charts

EJB Design Patterns was the #2 book at this years Java One conference, and held the #1 book on in the categories of Java, Web Development and Software Design for many weeks.

What you will find here

This is the official homepage for EJB Design Patterns. Here you can download the source code for the book and also a PDF version of the book. Book Errata and other announcements will also be posted here.

Important Links

A Warning About the Overuse of Design Patterns: Evil Design Patterns

Purchase the book on

Design Patterns: Elements of Reusable Object-Oriented Software  ~ Richard Helm
Head First Design Patterns  ~ Eric Freeman
Design Patterns in Java(TM) (Software Patterns Series)
Head First Object-Oriented Analysis and Design  ~ Gary Pollice


Book errata

If you find any errors while reading the book, let us know! We'll have our publisher fix them in the next printing. Keep sending them in to [email protected] with a full description of the page number, line, and specific error. If there is a problem with source code, please be sure to mention the file names, line numbers, and chapters.

Chapter Page No. Description



The TransferFunds class diagram is missing 'setter' methods for the withdrawAccountID and depositAccountID member variables.

2 and 9

53 and 204

On p53 it is recommended that DTO's be used as arguments to ejbCreate, but then this behaviour is discouraged on p204. This was an oversight. The author recommends using limited primitives as arguments, as described on p204.



This page is missing a paragraph. The first paragraph on the page (above the one beginning with "One important..." should be: "A source code example of a Business Delegate for a Stateful Session Bean that can be serialized is included in Appendix B, under Business Delegate. This example provides serializability in a completely transparent fashion - other than throwing it into an HTTPSession, the client of the business delegate doesn't need to handle it any differently than it would a delegate for a stateless session bean."



Member variable sb should be of type ForumService, not TestSession.


Dig Deeper on Development tools for continuous software delivery

App Architecture
Software Quality
Cloud Computing