You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
520 lines
15 KiB
520 lines
15 KiB
<?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.1</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> |
|
|
|
<author> |
|
<firstname>Oliver</firstname> |
|
|
|
<surname>Gierke</surname> |
|
</author> |
|
|
|
<author> |
|
<firstname>Rossen</firstname> |
|
<surname>Stoyanchev</surname> |
|
</author> |
|
|
|
</authorgroup> |
|
|
|
<copyright> |
|
<year>2004-2012</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, Dave Syer, Oliver Gierke, Rossen Stoyanchev</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</title> |
|
|
|
<xi:include href="new-in-3.0.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
|
<xi:include href="new-in-3.1.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="cache" /></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="cache.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="migration-3.1.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>
|
|
|