RoadMap Spring Core Framework
1. Understanding SOLID Principles and Spring's Role
Begin with understanding the principles that Spring leverages to simplify and structure
applications.
o Videos:
https://www.youtube.com/watch?v=08eEhNKOw7I
https://www.youtube.com/watch?v=oP-6ly2Zt5E
o PDF:
https://www.linkedin.com/feed/update/urn:li:ugcPost:727555044290063
1552/
https://www.linkedin.com/feed/update/urn:li:activity:726115412626320
1792/?updateEntityUrn=urn%3Ali%3Afs_updateV2%3A%28urn%3Ali%3
Aactivity%3A7261154126263201792%2CFEED_DETAIL%2CEMPTY%2CD
EFAULT%2Cfalse%29&originTrackingId=Qgrxd6WeTnSRg0uCCEHi%2Bw
%3D%3D
https://www.youtube.com/watch?v=08eEhNKOw7I (Mr Youssefi)
2. Core Concepts: Beans and Containers
Learn about the fundamental building blocks in Spring.
o Videos:
https://www.youtube.com/watch?v=vLMaFRgZjM0
https://www.youtube.com/watch?v=fbP0ANAeXVI
https://www.youtube.com/watch?v=3K-
uPe9SZLc&list=PLmCsXDGbJHdjHU5AFupvzyTWtjSG-QZEz
3. Configuration Approaches
Explore the various ways to configure beans and the application context.
o Topics:
Annotation-based configuration using @Bean
Class-based configuration using @Component
Configuration classes
o Videos:
https://www.youtube.com/watch?v=xP04pANWBxE
https://www.youtube.com/watch?v=CWEQ-1v 1o
4. Dependency Injection (DI)
Dive deeper into DI and its di erent types.
o Videos:
https://www.youtube.com/watch?v=KshMt_so2NU
https://www.youtube.com/watch?v=ie-W2pVITp4
https://www.youtube.com/watch?v=84bC_-3Y2Nk
https://www.youtube.com/watch?v=F0oK42CwCuo
5. Spring Lifecycle
Understand the lifecycle of a Spring bean and the container.
o Topics:
Bean initialization and destruction
Lifecycle methods like @PostConstruct and @PreDestroy
ApplicationContext lifecycle
o Videos:
https://youtu.be/g3bl7HJtBIw?si=MvyhgycsKIu-4kSg
After assimilating these basic notions of spring core, the learner can parse this tree of Spring
Framework Packages and Subpackages and study di erent annotations, classes and interfaces.
src/main/java/
├── org/springframework/context
│ ├── ApplicationContext.java
│ ├── ApplicationEvent.java
│ ├── ApplicationListener.java : https://youtu.be/xkWTO5M51FA?si=3v0PA3XOjp_oV-yi
│ ├── annotation/
│ │ ├── @PostConstruct.java : https://youtu.be/HtW7yWa9PhE?si=YhMS4vzAg_TfzmOY
https://youtu.be/FpJqPQkCU7I?si=XA_oWjA7JReF5MAo
│ │ ├── @PreDestroy.java : https://youtu.be/8RkXXPdmjfI?si=JuC2LBJB-6Ed9O-s
── @Profile.java : https://youtu.be/Ze7vCEo-PuI?si=XwJa1IqozDqevSMo
│ └── event/
│ ├── ApplicationEventPublisher.java
│ ├── ApplicationEventPublisherAware.java
│ ├── ContextRefreshedEvent.java
│ ├── ContextClosedEvent.java
│ ├── ContextStartedEvent.java
│ ├── ContextStoppedEvent.java
│ └── support/
│ ├── AbstractApplicationContext.java
│ ├── GenericApplicationContext.java
├── org/springframework/beans
│ ├── @Autowired.java : https://youtu.be/ET39IF r24?si=29YJfZZvEx4vUtBe
https://youtu.be/g9yRS9hL4Rw?si=SPZI6fvK4I632ZzM
https://youtu.be/ET39IF r24?si=ltlIB5loAfEQzt5P
│ ├── @Qualifier.java https://youtu.be/-3XtYZJZnxs?si=akGH2iSSwmbVYtA_
│ ├── annotation/
│ │ ├── @Primary.java https://youtu.be/ocecnF10d-k?si=h-0GPs0YLEgQCjeP
│ ├── factory/
│ │ ├── BeanFactory.java
│ │ ├── ConfigurableBeanFactory.java
│ │ ├── ListableBeanFactory.java
│ ├── factory/config/
│ │ ├── BeanDefinition.java
│ │ ├── BeanPostProcessor.java : https://youtu.be/vO9QW9h2Zys?si=Q_MJbXku8QLW1nAv
https://youtu.be/pru-aNvfmSQ?si=8Qe1hezOqrdeCTbV
https://youtu.be/s3WtA_XiBH4?si=t3SNDDuT34Wc2A3w
│ │ ├── BeanFactoryPostProcessor.java
├── org/springframework/context/annotation
│ ├── @Component.java : https://youtu.be/ewI4Coe9vJ0?si=vCXSRGh-H0AF1R3W
│ ├── @Service.java
│ ├── configuration/
│ │ ├── @Configuration.java : https://youtu.be/xP04pANWBxE?si=MYU5l_KzxSmD2hVn
│ │ ├── @Bean.java
│ │ ├── @Import.java : https://youtu.be/zGTO57LGOtI?si=1UVYJlimENcKn-1P
│ │ ├── @PropertySource.java : https://youtu.be/JrkHCGDZB3w?si=L1EECrYLX-kp48sO
│ │ ├── @ComponentScan.java
├── org/springframework/core
│ ├── annotation/
│ │ ├── @AliasFor.java
│ │ ├── @Order.java : https://javapapers.com/spring/spring-order-annotation/
│ │ ├── @Stereotype.java : https://youtu.be/uch83K6Lo7I?si=fDHAb4HCJVwY5Dqx
│ ├── env/
│ │ ├── Environment.java : https://vetriselvanm1187.medium.com/spring-framework-series-
environment-2674c38590eb
│ │ ├── ConfigurableEnvironment.java
│ ├── contextAware/
│ ├── ApplicationContextAware.java :
https://youtu.be/WUqyoH_G4Ko?si=5lc4ZN2C5z8RHlX9
https://youtu.be/wKbXAY1Yrkc?si=gdbWfcwnCWkJ-EfQ
│ ├── EnvironmentAware.java
│ ├── MessageSourceAware.java
│ ├── ResourceLoaderAware.java