Additional Support
Spring provides a lot of additional modules, which are optional
to the framework. The User has the flexibility to use them, as
they need them in their application. Some of these features are
briefly discussed below.
Spring AOP
Spring does not need Aspect Oriented Programming (AOP) to
function as a framework. AOP enhances the Spring middleware
support by providing declarative services. The declarative
services can be used as replacements for the EJB declarative
services used in CMTs. The EJB "declarative services" are
provided by Spring using the "declarative transaction management
service." Transaction management services are based on the
spring transaction management, which will be discussed next.
Transaction Management
Spring provides a simple programmatic transaction management
API. Spring provides support for both declarative transaction
management and programmatic transaction management. Declarative
transaction management is used in EJB container managed
transactions (CMT) and programmatic transaction management is
used in EJB bean managed persistence. Additionally Spring can
use transaction management to avoid the use of EJBs where not
required.
Data Access using JDBC
The org.springframework.jdbc package provides all the JDBC
related support required by the application. One of the
interesting interfaces within this package is the
SQLExceptionTranslator. The translator can help in providing
translations from the very common and generic SQLException in to
something more specific and informative. SQLExceptions are too
generic and cannot provide any great information that can be
passed back to the user. Spring’s wrapper
(SQLExceptionTranslator) can implemented specific to a vendor
and can provide informative error messages, which can be sent
back to the user.
O/R Mapping
Spring provides integration with OR mapping tools like
Hibernate, JDO and iBATIS. (For information on Hibernate see
resources below). Spring provides very good support for
Hibernate. Spring augments the power of Hibernate by providing
support for Hibernate sessions, Hibernate transaction management
and other features in Hibernate.
Spring Web Framework
Spring provides a pluggable MVC architecture. The users have a
choice to use the web framework or continue to use their
existing web framework. Spring separates the roles of the
controller; the model object, the dispatcher and the handler
object which makes it easier to customize them. Spring web
framework is view agnostic and does not push the user to use
only JSPs for the view. The user has the flexibility to use
JSPs, XSLT, velocity templates etc to provide the view.
Spring And EJB
In a usual EJB application EJBs are located using service
locators and managed using business delegates. These results in
EJB JNDI look ups scattered all over the code. Spring can
provide proxy objects, which can act as business delegates do
the same job. These proxies can be configured into the
BeanFactory and the ApplicationContext.
Conclusion
Spring is very new to the market and provides a new lease of
life to framework development. Spring does not try to duplicate
existing solutions; it tries to integrate with exiting solutions
like JDO, AOP and Hibernate. However spring creates a new web
framework to replace Struts, as the creators of Spring feel that
Struts is not robust enough. Spring would generate great
interest in the coming months as more people become aware of it
and find it worthwhile to implement. Spring is portable across
application servers, as it does not include any application
server or platform specific requirements. This makes it compatible
on major application servers like Websphere, Weblogic, Tomcat,
Jboss and others like them. As of now spring can be integrated
and used in a eclipse IDE, however as the versions improve
spring should be providing support for more IDEs.
Benoy Jose is a web
developer with over six years of experience in J2EE and
Microsoft technologies. He is a Sun Certified programmer and
enjoys writing technical and non-technical articles for various
magazines.
Additional Reading
Dependency Injection Article
Spring Website
Hibernate Tutorial
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.