Need to develop Plain Old JAVA Objects? Want to have fun developing your application? Then we recommend using Spring Framework MVC with our Java server hosting packages because our developers get a kick out of it.
Update 2015: We have a new Spring MVC framework tutorial on our blog!
What Is Spring Framework?
The Spring Framework is a layered Java/J2EE application framework based on code published in Expert One-on-One J2EE Design and Development. The Spring Framework provides a simple approach to development that does away with numerous properties files and helper classes littering the codebase.
Powerful JavaBeans-based configuration management, applying Inversion-of-Control (IoC) principles. This makes wiring up applications quicker and easier. The use of IoC in the Spring framework is also referred to as Dependency Injection (DI). The IoC principle used in Spring framework is a technique that externalizes the creation and management of component dependencies. Assume the case where class Foo depends on an instance of Bar to perform some kind of operation. Traditionally, Foo creates an instance of Bar using the new operator or obtains one from some kind of factory class. Using the IoC approach, an instance of Bar (or a subclass) is provided to Foo at runtime by some external process. This is the reason why the term DI is more descriptive of Spring functionality (compared to IoC).
A core bean factory, usable in any environment, from applets to Java EE containers.
Generic abstraction layer for database transaction management, allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues.
Built-in generic strategies for JTA and a single JDBC DataSource. In contrast to plain JTA or EJB CMT, Spring's transaction support does not require Java EE environments.
JDBC abstraction layer that offers a meaningful exception hierarchy (no more pulling vendor codes out of SQLException), simplifies error handling, and greatly reduces the amount of code programmers need to write. You'll never need to write another 'finally' block to use JDBC again. The JDBC-oriented exceptions comply with Spring's generic DAO (Data Access Object) exception hierarchy.
Integration with Hibernate, JDO and iBATIS SQL Maps: in terms of resource holders, DAO implementation support, and transaction strategies. First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues. All of these comply with Spring's generic transaction and DAO exception hierarchies.
Flexible MVC web application framework, built on core Spring functionality. Developers have a high degree of control over this framework via strategy interfaces, and it accommodates multiple view technologies like JSP, FreeMarker, Velocity, Tiles, iText, and POI. Note that a Spring middle tier can easily combine with a web tier based on any other web MVC framework, like Struts, WebWork, or Tapestry.
Aspect-oriented programming framework to provide services like transaction management. AOP provides the ability to implement crosscutting logic—that is, logic that applies to many parts of your application—in a single place and to have that logic applied across your application automatically.
As MVC patterns (such as Struts) often have difficulty in providing a clear framework for designing the Model part of an application, Spring's ability to work easily with such patterns means that developers can quickly refactor many unsuccessful approaches to make use of Spring's JDBC abstraction layer.