SPRING

What Spring is ?

Is an Application development framework

Some of its general features

  • opensource java platform
  • Aims to make java 2EE programming easier 
  • Promotes good programming practices by enabling a POJO based programming model

Benefits of using Spring FrameWork

1. To help make enterprise class applications using only POJOs, enabling the application to run on a servlet container server, such as tomcat without the need of an EJB container.
2. Spring is designed in a modular fashion there is no need to worry about the other modules but the ones you need
3. Spring does not reinvent the wheel it makes use of other good frameworks like ORM and logging frameworks
4. Testing a Spring applcation its easier since its design aims for dependency injection making the testing process simpler for injecting test data
5. Spring has a well designed web framework called Spring MVC
6. Spring provides a good exception API to translate other framework exceptions into unchecked exceptions
7. Inversion Of Control containers tends to be lightweight compared to EJB containers
8. Spring provides a consistent transaction management interface that can scale down (local database) and scale up to global transactions (using JTA)

DEPENDENCY INJECTION (DI)

Is a process in which the framework and not the application, handle dependencies. For example Suppose we have a class A that depends on class B, thus Spring will inject the dependencies (B type objects) into A's type objects.

ASPECT ORIENTED PROGRAMING

Based on the Decorator Design Patter

MODULES

The framework contains around 20 modules, which are grouped in these categories 

  • Data Access / Integration
  • Web
  • AOP
  • Aspect
  • Core Container
  • Instrumentation
  • Messaging
  • Test