TeamLiB
Cover
About the Authors
Contents
Introduction
Who This Book Is For
Aims of This Book
What This Book Covers
Assumed Knowledge
Recommended Reading
What You Need to Use This Book
The Sample Application
Conventions
Errata
p2p. wrox. com
Chapter 1: Why " J2EE Without EJB"?
EJB Under the Spotlight
What's Left of J2EE?
J2EE at a Crossroads
The Way Forward
Should We Ever Use EJB?
Summary
Chapter 2: Goals
Productivity
OO
The Importance of Business Requirements
The Importance of an Empirical Process
Summary
Chapter 3: Architectures
Architectural Building Blocks
J2EE Architectures
J2EE Architectures in Practice
Deciding Whether an Application Needs an Application Server
Summary
Chapter 4: The Simplicity Dividend
The Cost of Complexity
Causes of Complexity in J2EE Applications
How Much Complexity Is too Much Complexity?
Summary
Chapter 5: EJB, Five Years On
Hype and Experience
An Aging Component Model
What Do We Really Want from EJB, or Why Stateless Session Beans Are So Popular
What Don't We Want from EJB?
Can EJB Reinvent Itself?
Myths and Fallacies
Moving Forward
Summary
Chapter 6: Lightweight Containers and Inversion of Control
Lightweight Containers
Managing Business Objects
Inversion of Control
Implications for Coding Style, Testing, and Development Process
Applying Enterprise Services
Summary
Chapter 7: Introducing the Spring Framework
History and Motivation
A Layered Application Framework
The Core Bean Factory
Resource Setup
The Spring Application Context
Summary
Chapter 8: Declarative Middleware Using AOP Concepts
AOP 101
EJB as a Subset of AOP
AOP Implementation Strategies
AOP Implementations
AOP Design Issues
J2EE a la carte
AOP in Practice with Spring
Using Source-level Metadata to Provide an Abstraction above AOP
Implications for Programming Style
References
Summary
Chapter 9: Transaction Management
High-level Transaction Management
Classic J2EE Transaction Management
Lightweight Transaction Infrastructure
Transaction Management with the Spring Framework
Summary
Chapter 10: Persistence
Common Persistence Strategies
A Brief History of Java Persistence Technologies
Data Access Technologies in Practice
The Data Access Object Pattern
Data Access with the Spring Framework
Summary
Chapter 11: Remoting
Classic J2SE Remoting: RMI
Classic J2EE Remoting: EJB
WSDL-based Web Services: JAX-RPC
Lightweight Remoting: Hessian and Burlap
Summary
Chapter 12: Replacing Other EJB Services
Thread Management
EJB Instance Pooling
Alternatives to EJB Threading and Pooling
Declarative Security
JMS and Message-driven Beans
Summary
Chapter 13: Web Tier Design
Goals and Architectural Issues
Request-driven Web MVC Frameworks
Alternative Approaches to Web MVC
Summary
Chapter 14: Unit Testing and Testability
Why Testing Matters
Goals of Unit Testing
Ensuring Testability
Unit Testing Techniques
Test-driven Development ( TDD)
Case Study: The Spring Experience
Testing Spring Applications
Coverage Analysis and Other Test Tools
Resources
Summary
Chapter 15: Performance and Scalability
Definitions
Setting Clear Goals
Architectural Choices: The Key to Performance and Scalability
Implementation Choices
Tuning and Deployment
An Evidence-based Approach to Performance
Resources
Summary
Chapter 16: The Sample Application
Pet Store Requirements
The iBATIS JPetStore 3.1
Spring JPetStore
Build and Deployment
Summary
Chapter 17: Conclusion
Looking Back
Moving Forward
Guidelines
Last Words
Index