Spring Core: Presentation by
Spring Core: Presentation by
Spring Core: Presentation by
Presentation by
Hung Nguyen Huy
Content
1. What is a Framework?
2. What is Spring Framework?
3. Spring Framework History
4. Spring Framework Architecture
5. Why Spring?
6. Spring Framework Ecosystem
What is a Framework?
What is a Software Framework?
● A set of libraries and classes, which provides built-in generic
functionalities, dealt with standard low-level details of a working system.
● A reusable software environment.
● Can be extended by additional users-written code to provide specific
functionalities.
● Enforces the adherence to a coding standards and consistent design
approaches which are pre-defined by the Framework itself.
What is a Software Framework?
● Each programming language has at least one
universal, reusable framework.
● Frameworks are fully layered workflow
environment. More than just code, they
defines the flow of control for the application.
● They can includes:
○ Libraries
○ APIs
○ Compilers
○ Tool sets
○ Security
○ Caching
○ ...
Software Framework Advantages
● Provides built-in generic functionalities
○ For example: Security, request handling, caching, logging,...
● Spring Boot is still Spring under the hood, it bases on the same core
of Spring.
Spring Framework Architecture
Spring Framework Architecture
● Spring Framework consists of features
organized into about 20 modules.
● These modules are generalized into
following layers:
○ Core Container
○ Data Access/ Integration
○ Web
○ AOP (Aspect Oriented Programming)
○ Instrumentation
○ Test
Core Container
Core and Beans modules
● Provide the fundamental parts of the
framework, including the IoC and Dependency
Injection features.
1. Simplicity
2. Testability
3. Loose Coupling
Simplicity
Spring Framework is simple because its non-invasive as it uses POJO and POJI
models.
● POJO (Plain Old Java Objects): A Java class not coupled with any
technology or any framework is called POJO.
● POJI (Plain Old Java Interfaces): A Java interface not coupled with any
technology or any framework is called POJI.
Testability
Actually for writing the Spring application,
server (Container) is not mandatory because
it has it own container to run the applications.
Loose Coupling
Spring Framework is loosely coupled because it has
concepts like Dependency Injection, AOP etc.