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.
375 lines
12 KiB
375 lines
12 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" |
|
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> |
|
|
|
<book xmlns:xi="http://www.w3.org/2001/XInclude"> |
|
<bookinfo> |
|
<title>Reference Documentation</title> |
|
<subtitle>(Work in progress)</subtitle> |
|
<productname>Spring Framework</productname> |
|
<releaseinfo>3.0.0.RC2</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> |
|
</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/> |
|
<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"/> |
|
</part> |
|
<part id="spring-whats-new"> |
|
<title>What's New in Spring 3.0</title> |
|
<xi:include href="new-in-3.xml"/> |
|
</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"/> |
|
<xi:include href="resources.xml"/> |
|
<xi:include href="validation.xml"/> |
|
<xi:include href="expressions.xml"/> |
|
<xi:include href="aop.xml"/> |
|
<xi:include href="aop-api.xml"/> |
|
<xi:include href="testing.xml"/> |
|
</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"/> |
|
<xi:include href="dao.xml"/> |
|
<xi:include href="jdbc.xml"/> |
|
<xi:include href="orm.xml"/> |
|
<xi:include href="oxm.xml"/> |
|
</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"/> |
|
<xi:include href="view.xml"/> |
|
<xi:include href="web-integration.xml"/> |
|
<xi:include href="portlet.xml"/> |
|
</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"/> |
|
<xi:include href="ejb.xml"/> |
|
<xi:include href="jms.xml"/> |
|
<xi:include href="jmx.xml"/> |
|
<xi:include href="cci.xml"/> |
|
<xi:include href="mail.xml"/> |
|
<xi:include href="scheduling.xml"/> |
|
<xi:include href="dynamic-languages.xml"/> |
|
<xi:include href="metadata.xml"/> |
|
</part> |
|
<!-- back matter --> |
|
<part id="spring-appendices"> |
|
<title>Appendices</title> |
|
<xi:include href="classic-spring.xml"/> |
|
<xi:include href="classic-aop-spring.xml"/> |
|
<xi:include href="xsd-configuration.xml"/> |
|
<xi:include href="xml-custom.xml"/> |
|
<xi:include href="dtd.xml"/> |
|
<xi:include href="spring.tld.xml"/> |
|
<xi:include href="spring-form.tld.xml"/> |
|
</part> |
|
</book>
|
|
|