504 lines
15 KiB
XML
504 lines
15 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
|
<book>
|
|
<bookinfo>
|
|
<title>Reference Documentation</title>
|
|
|
|
<productname>Spring Framework</productname>
|
|
|
|
<releaseinfo>3.0</releaseinfo>
|
|
|
|
<mediaobject>
|
|
<imageobject role="fo">
|
|
<imagedata align="center" fileref="images/logo-pdf.png" format="PNG"
|
|
width="240" />
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Rod</firstname>
|
|
|
|
<surname>Johnson</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Juergen</firstname>
|
|
|
|
<surname>Hoeller</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Keith</firstname>
|
|
|
|
<surname>Donald</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Colin</firstname>
|
|
|
|
<surname>Sampaleanu</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Rob</firstname>
|
|
|
|
<surname>Harrop</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Thomas</firstname>
|
|
|
|
<surname>Risberg</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Alef</firstname>
|
|
|
|
<surname>Arendsen</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Darren</firstname>
|
|
|
|
<surname>Davison</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Dmitriy</firstname>
|
|
|
|
<surname>Kopylenko</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Mark</firstname>
|
|
|
|
<surname>Pollack</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Thierry</firstname>
|
|
|
|
<surname>Templier</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Erwin</firstname>
|
|
|
|
<surname>Vervaet</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Portia</firstname>
|
|
|
|
<surname>Tung</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Ben</firstname>
|
|
|
|
<surname>Hale</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Adrian</firstname>
|
|
|
|
<surname>Colyer</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>John</firstname>
|
|
|
|
<surname>Lewis</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Costin</firstname>
|
|
|
|
<surname>Leau</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Mark</firstname>
|
|
|
|
<surname>Fisher</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Sam</firstname>
|
|
|
|
<surname>Brannen</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Ramnivas</firstname>
|
|
|
|
<surname>Laddad</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Arjen</firstname>
|
|
|
|
<surname>Poutsma</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Chris</firstname>
|
|
|
|
<surname>Beams</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Tareq</firstname>
|
|
|
|
<surname>Abedrabbo</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Andy</firstname>
|
|
|
|
<surname>Clement</surname>
|
|
</author>
|
|
|
|
<author>
|
|
<firstname>Dave</firstname>
|
|
|
|
<surname>Syer</surname>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<copyright>
|
|
<year>2004-2009</year>
|
|
|
|
<holder>Rod Johnson, Juergen Hoeller, Keith Donald, Colin Sampaleanu,
|
|
Rob Harrop, Alef Arendsen, Thomas Risberg, Darren Davison, Dmitriy
|
|
Kopylenko, Mark Pollack, Thierry Templier, Erwin Vervaet, Portia Tung,
|
|
Ben Hale, Adrian Colyer, John Lewis, Costin Leau, Mark Fisher, Sam
|
|
Brannen, Ramnivas Laddad, Arjen Poutsma, Chris Beams, Tareq Abedrabbo,
|
|
Andy Clement</holder>
|
|
</copyright>
|
|
|
|
<legalnotice>
|
|
<para>Copies of this document may be made for your own use and for
|
|
distribution to others, provided that you do not charge any fee for such
|
|
copies and further provided that each copy contains this Copyright
|
|
Notice, whether distributed in print or electronically.</para>
|
|
</legalnotice>
|
|
</bookinfo>
|
|
|
|
<!-- front matter -->
|
|
|
|
<toc></toc>
|
|
|
|
<part id="spring-introduction">
|
|
<title>Overview of Spring Framework</title>
|
|
|
|
<partintro id="spring-core-intro">
|
|
<para>The Spring Framework is a lightweight solution and a potential
|
|
one-stop-shop for building your enterprise-ready applications. However,
|
|
Spring is modular, allowing you to use only those parts that you need,
|
|
without having to bring in the rest. You can use the IoC container, with
|
|
Struts on top, but you can also use only the <link
|
|
linkend="orm-hibernate">Hibernate integration code</link> or the <link
|
|
linkend="jdbc-introduction">JDBC abstraction layer</link>. The Spring
|
|
Framework supports declarative transaction management, remote access to
|
|
your logic through RMI or web services, and various options for
|
|
persisting your data. It offers a full-featured <link
|
|
linkend="mvc-introduction">MVC framework</link>, and enables you to
|
|
integrate <link linkend="aop-introduction">AOP</link> transparently into
|
|
your software.</para>
|
|
|
|
<para>Spring is designed to be non-intrusive, meaning that your domain
|
|
logic code generally has no dependencies on the framework itself. In
|
|
your integration layer (such as the data access layer), some
|
|
dependencies on the data access technology and the Spring libraries will
|
|
exist. However, it should be easy to isolate these dependencies from the
|
|
rest of your code base.</para>
|
|
|
|
<para>This document is a reference guide to Spring Framework features.
|
|
If you have any requests, comments, or questions on this document,
|
|
please post them on the user mailing list or on the support forums at
|
|
<ulink url="http://forum.springsource.org/"></ulink>.<!--Missing link above. PDF shows it as http://forum.springsource.org/--></para>
|
|
</partintro>
|
|
|
|
<xi:include href="overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<part id="spring-whats-new">
|
|
<title>What's New in Spring 3.0</title>
|
|
|
|
<xi:include href="new-in-3.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<part id="spring-core">
|
|
<title>Core Technologies</title>
|
|
|
|
<partintro id="spring-core-intro">
|
|
<para>This part of the reference documentation covers all of those
|
|
technologies that are absolutely integral to the Spring
|
|
Framework.</para>
|
|
|
|
<para>Foremost amongst these is the Spring Framework's Inversion of
|
|
Control (IoC) container. A thorough treatment of the Spring Framework's
|
|
IoC container is closely followed by comprehensive coverage of Spring's
|
|
Aspect-Oriented Programming (AOP) technologies. The Spring Framework has
|
|
its own AOP framework, which is conceptually easy to understand, and
|
|
which successfully addresses the 80% sweet spot of AOP requirements in
|
|
Java enterprise programming.</para>
|
|
|
|
<para>Coverage of Spring's integration with AspectJ (currently the
|
|
richest - in terms of features - and certainly most mature AOP
|
|
implementation in the Java enterprise space) is also provided.</para>
|
|
|
|
<para>Finally, the adoption of the test-driven-development (TDD)
|
|
approach to software development is certainly advocated by the Spring
|
|
team, and so coverage of Spring's support for integration testing is
|
|
covered (alongside best practices for unit testing). The Spring team has
|
|
found that the correct use of IoC certainly does make both unit and
|
|
integration testing easier (in that the presence of setter methods and
|
|
appropriate constructors on classes makes them easier to wire together
|
|
in a test without having to set up service locator registries and
|
|
suchlike)... the chapter dedicated solely to testing will hopefully
|
|
convince you of this as well.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><xref linkend="beans" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="resources" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="validation" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="expressions" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="aop" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="aop-api" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="testing" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</partintro>
|
|
|
|
<xi:include href="beans.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="resources.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="validation.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="expressions.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="aop.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="aop-api.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="testing.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<part id="spring-data-tier">
|
|
<title>Data Access</title>
|
|
|
|
<partintro id="spring-data-tier-intro">
|
|
<para>This part of the reference documentation is concerned with data
|
|
access and the interaction between the data access layer and the
|
|
business or service layer.</para>
|
|
|
|
<para>Spring's comprehensive transaction management support is covered
|
|
in some detail, followed by thorough coverage of the various data access
|
|
frameworks and technologies that the Spring Framework integrates
|
|
with.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><xref linkend="transaction" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="dao" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="jdbc" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="orm" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="oxm" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</partintro>
|
|
|
|
<xi:include href="transaction.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="dao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="jdbc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="orm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="oxm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<part id="spring-web">
|
|
<title>The Web</title>
|
|
|
|
<partintro id="spring-web-intro">
|
|
<para>This part of the reference documentation covers the Spring
|
|
Framework's support for the presentation tier (and specifically
|
|
web-based presentation tiers).</para>
|
|
|
|
<para>The Spring Framework's own web framework, <link
|
|
linkend="mvc">Spring Web MVC</link>, is covered in the first couple of
|
|
chapters. A number of the remaining chapters in this part of the
|
|
reference documentation are concerned with the Spring Framework's
|
|
integration with other web technologies, such as <link
|
|
linkend="struts">Struts</link> and <link linkend="jsf">JSF</link> (to
|
|
name but two).</para>
|
|
|
|
<para>This section concludes with coverage of Spring's MVC <link
|
|
linkend="portlet">portlet framework</link>.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><xref linkend="mvc" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="view" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="web-integration" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="portlet" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</partintro>
|
|
|
|
<xi:include href="mvc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="view.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="web-integration.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="portlet.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<part id="spring-integration">
|
|
<title>Integration</title>
|
|
|
|
<partintro id="spring-integration-intro">
|
|
<para>This part of the reference documentation covers the Spring
|
|
Framework's integration with a number of Java EE (and related)
|
|
technologies.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><xref linkend="remoting" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="ejb" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="jms" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="jmx" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="cci" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="mail" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="scheduling" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="dynamic-language" /></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><xref linkend="metadata" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</partintro>
|
|
|
|
<xi:include href="remoting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="ejb.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="jms.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="jmx.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="cci.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="mail.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="scheduling.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="dynamic-languages.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="metadata.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
|
|
<!-- back matter -->
|
|
|
|
<part id="spring-appendices">
|
|
<title>Appendices</title>
|
|
|
|
<xi:include href="classic-spring.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="classic-aop-spring.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="xsd-configuration.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="xml-custom.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="dtd.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="spring.tld.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
|
|
<xi:include href="spring-form.tld.xml"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude" />
|
|
</part>
|
|
</book>
|