What you'll learn:
- Spring Framework Core Concepts
- Spring History
- Environment Set up in STS and IntelliJ Idea
- Spring Dependency Injection
- Configuring Spring IoC Container through XML configuration
- Configuring Spring IoC Container through Java annotation configuration
- Spring Bean Autowiring - ByName, ByType, Constructor
- Spring Bean Life Cycle Callbacks, Bean Post Processor,
- Spring Aspect Oriented Programming, Concept of AOP, Aspect, Advice, Join Point, Pointcut, Different Advise types
- Spring Task Executor - SyncTaskExecutor, SimpleAsyncTaskExecutor, TaskExecutorAdapter
- Spring Bean Communication - ApplicationEvent, ApplicationListener, ContextClosedEvent, ContextRefreshedEvent, ApplicationEventPublisherAware, @EventListener
[Updated 2023]
This course primarily focuses on the fundamentals of the Spring Framework. This course is for you if you are keen to understand the Spring core concepts on dependency injection, bean configurations, Aspect Oriented Programming etc.
A comprehensive guide on Spring fundamentals. Whether you are a beginner on Spring Framework or an experience Spring developer, there are many takeaways from this course.
It covers the following Spring concepts:-
Module 1: Course Overview
Introduction
What we need
Target Audience
Prerequisites
Course Walkthrough
What we'll not cover
Module Summary
Module 2: Set up the development Environment
Introduction
Installing Java
Installing Maven
Installing - Spring Tool Suite
Creating Maven Project in Spring Tool Suite
Installing - Intellij IDEA
Creating Maven Project in Intellij Idea
Module 3: Spring Core Introduction
Spring Overview
Spring History
Spring Modules
Dependency Management: Traditional Ways
Dependency Management: Dependency Injection
Concepts of POJO and Bean
Inversion of Control: Spring IOC Container
Bean Factory Interface
ApplicationContext Interface
Configuring beans: XML-based, Annotation and Java Config configuration
Module conclusion
Module 4: [Deprecated] XML-Based Configuration
Introduction
Configuring POJOs with XML-based configuration
ClassPathXmlApplicationContext
Setter-based Dependency Injection
Constructor-based Dependency Injection
Constructor vs Setter based Injections
Circular dependencies
Composing XML-based Configuration Metadata
Referencing Other beans
Inner Beans
Handling Java Collections
Merging Collections
Depends-on
Lazy-Initialization
Module 5: [Deprecated] Autowiring
Basics of Autowiring
Autowiring Types,
No Autowiring,
Autowiring byName,
Autowiring byType
Autowiring constructor
Issues with Autowiring
Module 6: Java Configuration
Configuring beans with Java Configuration
Component scan with @ComponentScan
@Configuration and @Bean Annotation
@Component, @Configuration, @Service and @Repository annotations
Constructor Injection
Autowiring POJOs
@Primary Annotation
@Qualifier Annotation
Importing Configuration
@Scope Annotation
@Lazy Annotation
@DependsOn
Module 7: Spring Beans Deep Dive
Introduction
Bean Life Cycle Callbacks
@PostConstruct and @PreDestroy annotations
Bean Scope
Bean Post Processor
POJO Creation with factory methods - Static factory, instance method and Spring factory bean
Managing environments - @Profile annotation
Spring Aware Interfaces
BeanNameAware
BeanFactoryAware
ApplicationContextAware
MessageSourceAware
ResourceLoaderAware
EnvironmentAware
Module 8: Spring Aspect-Oriented Programming
AOP Introduction
Core AOP Concepts
What is Aspect?
JoinPoint
What is Advice?
Pointcut
AOP Proxy
AspectJ
Weaving
AspectJ and @EnableAspectJAutoProxy annotation
Advice Annotations: @Before, @After, @AfterReturing, @AfterThrowing, @Around
@Before and @After Annotation
@AfterReturning Annotation
@AfterThrowing Annotation
@Around
Demonstration
Module 9: Spring Task Executor
Introduction to Java Executor, ExecutorService
Runnable, Callable and Future
Threadpool - A fixed thread pool, Cached thread pool, Single thread executor, scheduled thread pool executor
Spring TaskExecutor
Spring SimpleAsyncTaskExecutor
Spring SyncTaskExecutor
Spring TaskExecutorAdapter
Module 10: Communication between Beans - ApplicationEvent Management
Introduction
ApplicationListener Interface
ApplicationEventPublisher
Example
Module 11: Conclusion
Source Code
Course Summary
Whats Next?