Spring Framework
Spring Framework
Simplifying J2EE
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.raibledesigns.co"
!ww.raibledesigns.co"
!ww.springlive.co"
!ww.raibledesigns.co"
What is it?
A J2EE Framework designed to make building
applications easier.
Provides a means to manage your business
objects and their dependencies.
Inversion of Control allows classes to be
loosely coupled and dependencies written in
XML.
!ww.springlive.co"
!ww.raibledesigns.co"
What is it?
!ww.springlive.co"
!ww.raibledesigns.co"
Sample Architecture
!ww.springlive.co"
!ww.raibledesigns.co"
The BeanFactory
!ww.raibledesigns.co"
Spring MVC
Front-Controller Servlet: DispatcherServlet
Controllers loaded as beans from servlets
XML context les
ContextLoaderListener loads other XML
context les
Many dierent Controller options:
Controller, SimpleFormController, Wizard
!ww.springlive.co"
!ww.raibledesigns.co"
Examples: Controllers
The Controller interface is generally used to
display data, not for forms.
SimpleFormController easiest for forms.
JSP Tags, Velocity, FreeMarker, PDF, Excel
Validation: Commons Validator or Validation
classes
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.raibledesigns.co"
MVC Tips
JSP 2.0 Tag les in JIRA - for syntax
simplication
Use SiteMesh - simple yet powerful
AppFuse and Equinox have good integration
examples
!ww.springlive.co"
!ww.raibledesigns.co"
Data Access
Spring JDBC Framework
No exceptions to catch or resources to
close
Base DAO and Template classes for many
frameworks:
Hibernate, iBATIS, OJB, JDO - even
TopLink
Hibernate 3 support in JIRA
!ww.springlive.co"
!ww.raibledesigns.co"
DataAccessException
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.springlive.co"
!ww.raibledesigns.co"
Transactions
Much easier to use than UserTransaction in
J2EE
CMT-like capabilities with XML and
transparent AOP
Supports Commons Attributes and JDK 5
Annotations
Pluggable Transaction Managers, including
JTA
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.springlive.co"
!ww.raibledesigns.co"
AOP
AOP - Reduces duplication among classes
Interceptors make it easy to add before,
around and after method advice
Useful for caching, logging and security
EHCache, Performance/Tracing
interceptors, Acegi for Security
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.springlive.co"
!ww.raibledesigns.co"
Tools
!ww.springlive.co"
!ww.raibledesigns.co"
!ww.springlive.co"
!ww.raibledesigns.co"
Questions
Practical applications of AOP?
Multithreading with singleton beans - is it
safe?
Tips and Tricks?
What are the Gotchas?
!ww.springlive.co"
!ww.raibledesigns.co"
Questions, cont.
What environment is the best match for
Spring? Where will it not perform well?
Maintaining inter-class dependencies - tools?
Is Spring a replacement for Struts?
Can I use Spring with EJBs and Hibernate for
CMT?
!ww.springlive.co"
!ww.raibledesigns.co"
Resources
www.springframework.org and
forum.springframework.org
Interface21 oers commerical support at
www.springframework.com
Spring Live, Spring in Action and Professional
Spring Development
AppFuse (appfuse.dev.java.net) and Equinox
(equinox.dev.java.net)
!ww.springlive.co"
!ww.raibledesigns.co"
This Presentation
http://equinox.dev.java.net/SpringFramework.pdf
!ww.springlive.co"
!ww.raibledesigns.co"