Important Spring Framework Modules:
Module Description
Spring Core Module Provides the fundamental parts of the
framework, including the IoC
(Inversion of Control) and Dependency
Injection features.
Spring Beans Module Deals with the configuration and
management of beans in a Spring
application.
Spring Context Module Extends the core module and provides
additional enterprise-specific features
such as internationalization (i18n),
event propagation, and application
lifecycle management.
Spring AOP Module Supports aspect-oriented
programming features for separating
cross-cutting concerns like logging
and transaction management.
Spring JDBC Module Simplifies database interactions and
error handling, reducing boilerplate
code when working with JDBC.
Spring ORM Module Integrates with popular ORM
frameworks like Hibernate, JPA, and
JDO.
Spring Transaction Module Provides programmatic and
declarative transaction management
capabilities.
Spring Web Module Contains features for web
applications, including multipart file
upload functionality.
Spring MVC Module Implements the Model-View-Controller
(MVC) design pattern for developing
web applications.
Difference Between BeanFactory and ApplicationContext:
Feature BeanFactory ApplicationContext
A lightweight container A more advanced container that
Definition that manages beans and extends BeanFactory and provides
their dependencies. additional features.
Eager vs Lazy Beans are loaded lazily
Beans are loaded eagerly at startup.
Loading (only when needed).
Does not support event Supports event propagation for
Event Handling
propagation. application-wide events.
Internationalizati Supports internationalization (i18n) for
Not supported.
on Support different languages.
Enterprise Lacks enterprise-level Provides features like declarative event
Features features. listeners and lifecycle management.
Used for lightweight
Recommended applications where Used for enterprise applications
Usage memory efficiency is requiring advanced features.
crucial.
In summary, ApplicationContext is a more feature-rich and preferred container
for most enterprise applications, while BeanFactory is mainly used for
lightweight and resource-constrained scenarios.