- Dependency
- Typical Code without Dependency Injection
- Removing Tight-coupling through Dependency Injection
- Removing Tight-coupling through Spring's Dependency Injection
- BeanFactory
- ApplicationContext
- Instantiating a Spring IOC container
- Retrieving a Bean from Spring IOC container
Dependency Injection using Spring
- Types of Dependency Injection
- Constructor-based or setter-based Dependency Injection?
- Configuration Metadata for Dependency Injection
- Spring Dependency Injection using XML based configuration
- Spring Dependency Injection using Annotation based configuration
- Enabling Component Scanning
- Autowiring in Annotation based configuration
- Complete example demonstrating Annotation based bean definition
- Stereotype Annotations
- Spring Dependency Injection using Java based configuration
- Bean declaration using @Bean annotation and Java configuration file
- Bean dependencies and Autowirng
- Instantiating the Container
- Bean Declaration in Interfaces
- Composing Annotation based configuration metadata using @Import Annotation
- Complete Example demonstrating Java based Bean and Container configuration
- Integrating XML-based bean definitions into a Java-based configuration using @ImportResource Annotation
- Lazy initialization of Beans
- Dependency resolution in Spring
- Circular Dependencies
- Controlling Beans Creation order using depends-on/@DependsOn
Spring Bean Lifecycle Callbacks
- Shutting Down the Spring IoC Container Gracefully in Non-Web Applications
- Lifecycle callbacks in XML based configuration
- Lifecycle callbacks in Annotation based configuration
- Lifecycle callbacks in Java based configuration
- Lifecycle callbacks through Interfaces implementations
- Combining Lifecycle Mechanisms
Asynchronous processing in Spring
- Understanding BeanFactoryPostProcessor
- Implementing BeanFactoryPostProcessor
- Use Cases and Examples
- Core Framework Usage
- Understanding BeanPostProcessor
- Implementing BeanPostProcessor
- Usages
- Example : Custom Logging and Monitoring