Spring Framework and Spring Boot

  1. The Core Spring Framework
    1. Inversion of Control Container
      1. Overview of IoC Containers
        1. The BeanFactory Interface
          1. Features and Limitations
            1. Use Cases
            2. The ApplicationContext Interface
              1. Features and Enhancements over BeanFactory
                1. Types of ApplicationContext
                  1. ClassPathXmlApplicationContext
                    1. FileSystemXmlApplicationContext
                      1. AnnotationConfigApplicationContext
                        1. WebApplicationContext
                    2. Dependency Injection
                      1. Principle of Loose Coupling
                        1. Benefits in Application Design
                        2. DI Types
                          1. Constructor-Based Injection
                            1. Syntax and Usage
                              1. Advantages and Disadvantages
                              2. Setter-Based Injection
                                1. Syntax and Usage
                                  1. Advantages and Disadvantages
                                  2. Field-Based Injection
                                    1. Syntax and Usage
                                      1. Advantages and Disadvantages
                                    2. Autowiring
                                      1. @Autowired Annotation
                                        1. Usage in Constructors
                                          1. Usage in Setters
                                            1. Usage in Fields
                                            2. Ambiguity Resolution
                                              1. @Qualifier Annotation
                                                1. @Primary Annotation
                                                  1. @Resource Annotation
                                              2. Understanding Spring Beans
                                                1. Bean Definition and Instantiation
                                                  1. Defining Beans
                                                    1. Instantiation Strategies
                                                    2. Bean Lifecycle
                                                      1. Instantiation
                                                        1. Population of Properties
                                                          1. Awareness Interfaces
                                                            1. BeanNameAware
                                                              1. BeanFactoryAware
                                                                1. ApplicationContextAware
                                                                2. BeanPostProcessors
                                                                  1. Pre-initialization
                                                                    1. Post-initialization
                                                                    2. Initialization Callbacks
                                                                      1. @PostConstruct
                                                                        1. InitializingBean Interface
                                                                          1. Custom Init Methods
                                                                          2. Destruction Callbacks
                                                                            1. @PreDestroy
                                                                              1. DisposableBean Interface
                                                                                1. Custom Destroy Methods
                                                                              2. Bean Scopes
                                                                                1. Singleton Scope
                                                                                  1. Characteristics and Use Cases
                                                                                  2. Prototype Scope
                                                                                    1. Characteristics and Use Cases
                                                                                    2. Request Scope
                                                                                      1. Web Application Context
                                                                                      2. Session Scope
                                                                                        1. Web Application Context
                                                                                        2. Application Scope
                                                                                          1. Servlet Context
                                                                                          2. WebSocket Scope
                                                                                            1. WebSocket Sessions
                                                                                            2. Custom Scopes
                                                                                          3. Configuration Metadata
                                                                                            1. XML-Based Configuration
                                                                                              1. Bean Element
                                                                                                1. Property Element
                                                                                                  1. Constructor-Arg Element
                                                                                                    1. Namespaces and Schema
                                                                                                      1. Import and Alias Elements
                                                                                                      2. Annotation-Based Configuration
                                                                                                        1. Enabling Component Scanning
                                                                                                          1. @ComponentScan Annotation
                                                                                                          2. Stereotype Annotations
                                                                                                            1. @Component
                                                                                                              1. @Service
                                                                                                                1. @Repository
                                                                                                                  1. @Controller
                                                                                                                  2. Meta-Annotations
                                                                                                                    1. Configuration Annotations
                                                                                                                      1. @Value
                                                                                                                        1. @PropertySource
                                                                                                                      2. Java-Based Configuration
                                                                                                                        1. @Configuration Annotation
                                                                                                                          1. Defining Beans with @Bean
                                                                                                                            1. Importing Configurations with @Import
                                                                                                                              1. Conditional Configuration
                                                                                                                                1. @Conditional
                                                                                                                                  1. @Profile