<?xml version="1.0" encoding="UTF-8"?>
<preface xml:id="preface"
    xmlns="http://docbook.org/ns/docbook" version="5.0"
    xmlns:xl="http://www.w3.org/1999/xlink"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
        http://www.w3.org/1999/xlink http://www.docbook.org/xml/5.0/xsd/xlink.xsd">
  <title>Preface</title>

  <para>Developing software applications is hard enough even with good tools
  and technologies. Implementing applications using platforms which promise
  everything but turn out to be heavy-weight, hard to control and not very
  efficient during the development cycle makes it even harder. Spring provides
  a light-weight solution for building enterprise-ready applications, while
  still supporting the possibility of using declarative transaction
  management, remote access to your logic using RMI or web services, and
  various options for persisting your data to a database. Spring provides a
  full-featured <link linkend="mvc-introduction">MVC framework</link>, and
  transparent ways of integrating <link linkend="aop-introduction">AOP</link>
  into your software.</para>

  <para>Spring could potentially be a one-stop-shop for all your enterprise
  applications; however, Spring is modular, allowing you to use just those
  parts of it that you need, without having to bring in the rest. You can use
  the IoC container, with Struts on top, but you could also choose to use just
  the <link linkend="orm-hibernate">Hibernate integration code</link> or the
  <link linkend="jdbc-introduction">JDBC abstraction layer</link></para>

  <para>Spring has been (and continues to be) designed to be non-intrusive,
  meaning dependencies, from your domain logic code, on the framework itself
  are generally none. For your integration layer like the data access layer
  there will of course be some dependencies on the data access technology in
  use and also on the Spring libraries, but these dependencies should be easy
  to isolate from the rest of your code base.</para>

  <para>This document provides a reference guide to Spring's features. If you
  have any requests or comments, please add an issue at
  <link xl:href="http://jira.springsource.org/SPR" />.
  </para>
</preface>
