Topic 000: Spring and Spring Boot
Spring and Spring Framework is a lightweight app framework
for developing Enterprise Java Application.
The two most popular feature that Spring offers are
1. Dependency Injection (IOC)
2. Aspect Oriented Programming (AOP)
Spring framework modules are categorized based on the main features as:
1. Core Container
2. Data Access/Integration
3. Web
4. Aspect Oriented Programming (AOP)
5. Instrumentation and Test
Advantages of Spring Framework Lightweight
1. Loosely coupled using dependency injection.
2. Provides pre-defined templates for JDBC, Hibernate, JPA, etc. and good integration with other frameworks.
3. Thanks to Dependency Injection, these applications are easy to test.
4. Offers powerful abstraction to Java EE specifications such as JMS, JDBC, JPA, and JTA.
5. Provides declarative support for caching, validation, transactions, and formatting.
6. Offers flexibility to configure beans in multiple ways such as XML, Annotations, and JavaConfig.
7. Reduces Duplication of code.
Spring Ecosystem can be split into five parts
1. Web layer
2. Common layer
3. Service layer
4. Data layer
5. Foundation layer (Spans across all above layers)