|
|
Who's using Spring?
There are many production applications using Spring. Users include investment
and retail banking organizations, well-known dotcoms, global consultancies,
academic institutions, government departments, defence contractors, several
airlines, and scientific research organizations (including CERN).
Many users use all parts of Spring, but some use components in isolation. For
example, a number of users begin by using our JDBC or other data access
functionality.
Roadmap
Since the first version of this article, in October 2003, Spring has
progressed through its 1.0 final release (March 2004) through version 1.l
(September 2004) to 1.2 final (May 2005). We believe in a philosophy of
"release early, release often," so maintenance releases and minor enhancements
are typically released every 4-6 weeks.
Since that time enhancements include:
-
The introduction of a remoting framework supporting multiple protocols
including RMI and various web services protocols
-
Support for Method Injection and other IoC container enhancements such as
the ability to manage objects obtained from calls to static or instance
factory methods
-
Integration with more data access technologies, including TopLink and
Hibernate 3 as well as Hibernate 2 in the recent 1.2 release
-
Support for declarative transaction management configured by Java 5.0
annotations (1.2), eliminating the need for XML metadata to identify
transactional methods
-
Support for JMX management of Spring-managed objects (1.2).
-
Integration with Jasper Reports, the Quartz scheduler and AspectJ
-
Integration with JSF as a web layer technology
We intend to continue with rapid innovation and enhancement. The next major
release will be 1.3 (final release expected Q3, 2005). Planned enhancements
include:
-
XML configuration enhancements (planned for release 1.3), which will allow
custom XML tags to extend the basic Spring configuration format by defining
one or more objects in a single, validated tag. This not only has the
potential to simplify typical configurations significantly and reduce
configuration errors, but will be ideal for developers of third-party
products that are based on Spring.
-
Integration of Spring Web Flow into the Spring core (planned for release
1.3)
-
Support for dynamic reconfiguration of running applications
-
Support for the writing of application objects in languages other than Java,
such as Groovy, Jython or other scripting languages running on the Java
platform. Such objects will benefit from the full services of the Spring IoC
container and will allow dynamic reloading when the script changes, without
affecting objects that were given references to them by the IoC container.
As an agile project, Spring is primarily driven by user requirements. So we
don't develop features that no one has a use for, and we listen carefully to
our user community.
Spring Modules
is an associated project, led by Rob Harrop of Interface21, which extends the
reach of the Spring platform to areas that are not necessarily integral to the
Spring core, while still valuable to many users. This project also serves as
an incubator, so some of this functionality will probably eventually migrate
into the Spring core. Spring Modules presently includes areas such as
integration with the Lucene search engine and OSWorkflow workflow engine, a
declarative, AOP-based caching solution, and integration with the Commons
Validator framework.
Interestingly, although the first version of this article was published six
months before the release of Spring 1.0 final, almost all the code and
configuration examples would still work unchanged in today's 1.2 release. We
are proud of our excellent record on backward compatibility. This demonstrates
the ability of Dependency Injection and AOP to deliver a non-invasive API, and
also indicates the seriousness with which we take our responsibility to the
community to provide a stable framework to run vital applications.
|