Spring Framework

Introduction

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

Features

  • Dependency Injection
  • Aspect-Oriented Programming including Spring's declarative transaction management
  • Spring MVC web application and RESTful web service framework
  • Foundational support for JDBC, JPA, JMS
  • Much more..

Minimum requirements

  • JDK 6+ for Spring Framework 4.x
  • JDK 5+ for Spring Framework 3.x

Modules

The Spring Framework includes several modules that provide a range of service:

  • Spring Core Container: This is the base module of Spring and provides spring containers (BeanFactory and ApplicationContext).
  • Aspect-oriented programming: enables implementing cross-cutting concerns.
  • Authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).
  • Convention over configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module
  • Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping tools and with NoSQL databases
  • Inversion of control container: configuration of application components and lifecycle management of Java objects, done mainly via dependency injection
  • Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs
  • Model–view–controller: an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful Web services.
  • Remote access framework: configurative RPC-style marshalling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including Web services (SOAP)
  • Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects
  • Remote management: configurative exposure and management of Java objects for local or remote configuration via JMX
  • Testing: support classes for writing unit tests and integration tests

Comments

Popular posts from this blog

Convention-over-configuration rapid application development

AOP framework