Spring is a comprehensive framework for the development of applications based on the Javaprogramming language. Especially in connection with the J2EE platform, Spring is a standard framework that is available as open source for all possible forms of Java applications. The background of the development of Spring was to realize a lightweight framework as an alternative to the often complex J2EE architectures. For this purpose, Spring is based on a POJO-oriented programming model. More complex architectures are easier to test when using Spring, and the source code is easier to maintain, so that Spring has a lasting impact on the design of an application. Spring implements the concept of Dependency Injection (DI) at its core and continues to incorporate the mechanisms of aspect-oriented programming (AOP).
The structures of Spring provide for the integrative use of other frameworks and standards such as Enterprise JavaBeans (EJB) or Hibernate - Spring is a meta-framework and can be integrated into the most diverse architectures due to its independence from a specific platform. Thus, Spring is used in many application servers such as Tomcat, Jetty, JBoss, Glassfish, etc. or standalone in its own environment. For this purpose Spring also defines appropriate mechanisms for security. Distributed applications as well as distributed transactions are also possible because Spring guarantees high reliability and scalability. Under the links below you can download the Spring Framework as well as further information about Spring.
The history of SpringA short history of Spring: It started with a framework called interface21, which was published by Rod Johnson in his book "Expert One-on-One J2EE Design and Development", and was intended to support his own applications. Due to the high response, the open source project Spring was created from this in February 2003. The project is hosted at Sourceforge and currently employs a number of developers to further develop and support Spring. The current version of the framework is available at the link below. There you can also find other projects that have been developed in the Spring environment. For example, a version ported to the .NET platform is also available. Here is a short overview of other projects:
- Spring Webs Service for the realization of web services.
- Spring Security for the realization of security aspects in Java and web applications.
- Spring LDAP for the realization of access to LDAP systems.
- Spring Rich Client for the realization of rich client applications based on Spring.
- Spring Modules with a summary of tools and extensions for Spring.
The framework of SpringSpring is typically described as a so-called lightweight framework for building Java applications. Beyond that, however, it must be added:
The Spring framework can be used for all kinds of conceivable Java applications.
- Lightweight in this context means that you only have to make minimal changes to the existing source code in order to use Spring to your advantage.
Using the Spring framework can result in the following architectural advantages:
- Applications can be subjected to unit tests without further effort.
- Spring provides a consistent framework for accessing data. For this purpose, Java Database Connection (JDBC) or ORM products (Object-Relational Mapping) such as Hibernate, Toplink or Java Data Objects (JDO) can be used.
- Spring is an alternative to Enterprise JavaBeans (EJB) and uses mechanisms of aspect-oriented programming and thus offers declarative transaction management without an EJB container.
- Spring offers the developer a defined framework on all levels for his development.
- Business interfaces can be implemented as simple Java classes, the Plain Old Java Objects (POJO).
Spring Context Module Extends the concept of the BeanFactory with life-cycle events, validation, EJB integration, remoting and scheduling. The BeanFactory implements the container and the Context Module implements the framework-specific part.
Spring AOP Module Supports aspect-oriented programming (AOP) of custom aspects for Spring-based applications. It also enables metadata programming in Spring. To implement interoperability with other AOP frameworks, Spring AOP realization is largely based on the interface defined by the AOP Alliance.
Spring DAO Module The module abstracts the Java Database Connectivity (JDBC) interfaces so that the actual technical code to establish data connections, handle statements, results or errors, for example, is moved to the classes of the framework. This allows the application code to focus purely on the application. In order to provide transaction management services for the objects of a Spring application, the DAO module in turn uses the possibilities of the AOP module.
Spring ORM ModuleORM stands for object-relational mapping - this refers to the mapping of objects to relational databases. With this module, Spring integrates popular ORM frameworks such as Hibernate, TopLink, JDO and iBATISSQL Maps. However, transaction management services are also available in this module.
Spring Web Module Provides a context for the realization of web-based applications. Furthermore, this module integrates the Struts framework.
Spring Web MVC Module Contains a complete MVC framework for the realization of web applications and thus competes with other webapplication frameworks. However, the difference is that Spring with Model View Controller (MVC) while using Inversion of Control (IoC) has advantages in terms of flexibility and decoupling of components compared to other frameworks such as Struts.
In practice, the Spring framework is often part of the development of an application because it provides this large amount of functionality. Furthermore, the integration of persistence technologies and a declarative transaction management are supported, so that Spring is also used for database applications.