My understanding of Spring
- - Lightweight J2EE application development framework
- - Main components: Dependency injection container, AOP implementation, DAO/ORM support, Web integration
- - Core Package: The most basic part of the framework, providing IoC dependency injection features. The basic concept here is BeanFactory, which provides a classical implementation of the Factory pattern to eliminate the need for procedural singleton patterns and really allows for the separation of dependencies and configurations from the procedural logic.
- - The Context wrapper, built on top of the Core wrapper, provides a framework-like approach to object access, somewhat like a JNDI registry. The Context package features from the Beans package and adds support for internationalization (I18N) (such as resource binding) time propagation, the way resources are loaded, and transparent creation of Context, such as through Servlet containers
- - The DAO provides a JDBC abstraction layer that eliminates verbose JDBC coding and parsing database vendor-specific error codes. Moreover, the JDBC package provides a declarative approach to transaction management that is better than programmatic, not just for implementing specific interfaces, but for all POJOs.
- - The ORM package provides an integration layer for common object-relational mapping apis. With ORM packages, you can use a mix of all Spring features for object-relational mapping. Such as simple declarative transaction management.
- - Spring's AOP package provides aspect-oriented programming compliant with AOP (Aspect-Oriented programming).
- - Spring's Web package provides basic integration features for web development that can be combined with other frameworks when using Spring with WebWork or struts.
- - The MVC package in Spring provides a Model-View-Controller (MVC) implementation for Web applications. Spring's MVC framework provides a clean separation model. Spring's MVC framework provides a clean separation model between domain model code and web forms, and also leverages other features of the Spring framework
The role of Spring
- IOC inversion of control
- Tangent oriented programming