Introduction and History of the Spring Framework

The Spring Framework is an open source Java application framework originally developed based on the principles of dependency injection (DI) and inversion of control (IoC).

The Spring Framework has grown over years from just being an Inversion of control container, and currently includes several modules that provide range of services like Aspect-oriented programming, Data access, Transaction management, Model–view–controller, Authentication and authorization, Messaging, and Testing. You can have a look at all of these Spring projects @ spring.io/projects. The core module is the Spring Framework and most other modules are dependent on this module.

Spring provides autowiring capabilities through which you can simply specify the interface type and Spring can find an actual type at runtime, provided there are no conflicts.

Spring has become a popular alternative to the Enterprise JavaBean (EJB) model.

 

The Spring Framework Container

container creates and manages your components, and even provides some services to components managed in its environment, such as transaction management, persistence and security etc. 

Examples of containers from Java EE are Servlet container (or web container) that manages Servlets, JSPs, Filters etc. and EJB container that manages EJB components like session beans, message driven beans and entity beans.

Spring framework is a also container, as application components can be created and managed, and can be wired together. The spring framework even provides middleware services such as transaction management, dependency injection, persistence, aspect oriented programming and security. 

Spring framework is considered a lightweight container compared to EJBs, as it manages the components and provides services without requiring application code to depend on its own API, and also doesn’t need to be deployed into a full-featured application server, as in the case of EJBs.

 

Spring Framework History

  • The first version of the Spring framework was written by Rod Johnson along with a book in 2002. 

  • The framework was first released in June 2003 under the Apache license version 2.0. 

  • The first milestone release of Spring framework (1.0) was released in March 2004. 

  • Spring 2.0, which came in 2006, simplified the XML config files.

  • Spring 2.5, which came in 2007, introduced annotation configurations.

  • Spring 3.2, which came in 2012, introduced Java configuration, had support for Java 7, Hibernate 4, Servlet 3.0, and also required a minimum of Java 1.5. 

  • Spring 4.0, which came in 2014, had support for Java 8. 

  • Spring Boot also was introduced in 2014.

  • Spring 5.0 came out in 2017. Spring Boot 2.x has support for Spring 5.

 

Getting Started with Spring Documentation

Spring documentatipn is more of a tutorial than a guide and should be your primary reference material. Spring documentation can be accessed from spring.io/docs

JavaJee Checks: 
Plagarism Check last done on 4/June/2015

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)