Intro
About Chris
Overall presentation goal
Agenda
Separating concerns in the backend
Traditional business logic = tangled concerns
What's so great about Spring
POJO backend architecture
About Project Track
Architecture of Project Track
Agenda
JSF
Spring JSF Integration
Spring MVC
Spring WebFlow
Spring Webflow Example
Agenda
Business Tier Design
Avoiding tangled concerns
Dependency injection example
Prefer constructor injection
Thoughts about auto wiring
Avoid @Configurable
Don't fight the framework
Using Spring AOP
Spring transaction management
Configuring transaction management
Why not @Transactional?
Handling custom crosscutting concerns
Centralized pointcut definitions
Transaction Retry Aspect
Logging Aspect
Bean and Aspect definitions
Thoughts about AspectJ
Agenda
Overview of the data access tier
DAO design
Why HibernateTemplate?
Eliminate boilerplate with a GenericDao
Even simpler DAOs with Arid
SessionFactory configuration 1
SessionFactory configuration 2
DataSource Configuration
Agenda
Overview of Acegi Security
Acegi Architecture
FilterSecurityInterceptor Example
MethodSecurityInterceptor example
Agenda
Configuration issues
Spring bean definition organization
Loading property files
Naming conventions for Spring XML files
Agenda
Unit tests don't use Spring
Integration tests
Persistence tests
Web tests
Other useful features not discussed
Summary
For more information
The Spring framework has an extremely rich set of features that span all tiers of the application. If you are relatively new to Spring you might be wondering which of the many features to focus on; which features to avoid; and how to use the various features together in an application. This talk describes how the Spring framework was used to build an enterprise Java application. We will walk through each tier of the application and describe how the Spring framework was used. You will learn about how Spring was used to solve various design issues including:
wiring application components together
handling crosscutting concerns including transactions, audit logging, and security
simplifying database access.
testing
Chris Richardson is a developer and architect with over 20 years of experience. He's the author of "POJOs in Action", which describes how to build enterprise Java applications with POJOs and lightweight frameworks. Chris runs a consulting company that specializes in helping companies build better software faster. He has been a technical leader at Insignia, BEA, and elsewhere. Chris has a computer science degree from the University of Cambridge in England and lives in Oakland, CA.