
Dependency Injection & IoC Explained | Loose Coupling in Spring | Spring Boot Full Course #4
Coder Army
Overview
рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди (DI) рдФрд░ рдЗрдиреНрд╡рд░реНрдЬрди рдСрдл рдХрдВрдЯреНрд░реЛрд▓ (IoC) рдХреЗ рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рдХреЛ рд╕рдордЭрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдХреЛрд░ рдЖрдЗрдбрд┐рдпрд╛рдЬ рд╣реИрдВред рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЯрд╛рдЗрдЯ рдХрдкрд▓рд┐рдВрдЧ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ DI рдФрд░ IoC рдЗрд╕реЗ рд▓реВрдЬ рдХрдкрд▓рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдХрд░ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░, рдЯреЗрд╕реНрдЯреЗрдмрд▓ рдФрд░ рдореЗрдВрдЯреЗрдиреЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдмрд┐рдирд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ DI рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдСрдЯреЛрдореЗрдЯ рдХрд░рддрд╛ рд╣реИред
Save this permanently with flashcards, quizzes, and AI chat
Chapters
- рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдХреЛрд░ рдЖрдЗрдбрд┐рдпрд╛рдЬ рдЬреИрд╕реЗ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди (DI) рдФрд░ рдЗрдиреНрд╡рд░реНрдЬрди рдСрдл рдХрдВрдЯреНрд░реЛрд▓ (IoC) рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдХреНрд▓реАрди рдФрд░ рд▓реВрдЬрд▓реА рдХрдкрд▓реНрдб рдмрдирд╛рддреЗ рд╣реИрдВред
- рдпреЗ рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рд╡реЗрдм рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
- рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдЙрдирдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рди рдХрд┐ рд╕реАрдзреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
- рдПрдХ 'рдСрд░реНрдбрд░ рд╕рд░реНрд╡рд┐рд╕' рдХреНрд▓рд╛рд╕ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЬреЛ 'рдИрдореЗрд▓ рд╕рд░реНрд╡рд┐рд╕' рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реАрдзреЗ рдмрдирд╛рддреА рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдореЗрдердб рдХреЙрд▓ рдХрд░рддреА рд╣реИред
- рдСрд░реНрдбрд░ рд╕рд░реНрд╡рд┐рд╕ 'рдИрдореЗрд▓ рд╕рд░реНрд╡рд┐рд╕' рдкрд░ рдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯрд╛рдЗрдЯ рдХрдкрд▓рд┐рдВрдЧ рд╣реЛрддреА рд╣реИред
- рдЯрд╛рдЗрдЯ рдХрдкрд▓рд┐рдВрдЧ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ 'рдИрдореЗрд▓ рд╕рд░реНрд╡рд┐рд╕' рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝реЗ (рдЬреИрд╕реЗ 'рдПрд╕рдПрдордПрд╕ рд╕рд░реНрд╡рд┐рд╕' рдпрд╛ 'рдкреЙрдкрдЕрдк рд╕рд░реНрд╡рд┐рд╕' рдореЗрдВ), рддреЛ 'рдСрд░реНрдбрд░ рд╕рд░реНрд╡рд┐рд╕' рдореЗрдВ рднреА рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдУрдкрди-рдХреНрд▓реЛрдЬ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред
- рдХреЛрдб рдХреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдХрдВрдХреНрд░реАрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рд▓реВрдЬрд▓реА рдХрдкрд▓реНрдб рд╣реЛред
- рдПрдХ 'рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд┐рд╕' рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ `sendNotification()` рдореЗрдердб рд╣реИред
- 'рдИрдореЗрд▓ рд╕рд░реНрд╡рд┐рд╕', 'рдПрд╕рдПрдордПрд╕ рд╕рд░реНрд╡рд┐рд╕', рдФрд░ 'рдкреЙрдкрдЕрдк рд╕рд░реНрд╡рд┐рд╕' рдЬреИрд╕реА рдХрдВрдХреНрд░реАрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рддреА рд╣реИрдВред
- рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдХреНрд▓рд╛рд╕ рдЕрдкрдиреА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЦреБрдж рдХреНрд░рд┐рдПрдЯ рди рдХрд░реЗ, рдмрд▓реНрдХрд┐ рдЙрд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗред
- рдпрд╣ рд╕рд┐рдВрдЧрд▓ рд░рд┐рд╕реНрдкрд╛рдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ (SRP) рдФрд░ рдУрдкрди-рдХреНрд▓реЛрдЬ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ (OCP) рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
- DI рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдлреЗрдХ (mock) рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- DI рдХреЗ рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рд╕реЗрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рдиред
- IoC рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдХрдВрдЯреНрд░реЛрд▓ (рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд░рд┐рдПрд╢рди рдФрд░ рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд┐рд▓ рдореИрдиреЗрдЬрдореЗрдВрдЯ) рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╕реМрдВрдк рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- DI IoC рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдПрдХ рддрдХрдиреАрдХ рд╣реИред
- рдкрд╣рд▓реЗ, 'рдСрд░реНрдбрд░ рд╕рд░реНрд╡рд┐рд╕' рдЦреБрдж 'рдИрдореЗрд▓ рд╕рд░реНрд╡рд┐рд╕' рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдХрд░рддреА рдереА (рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреА рдереА)ред DI рдХреЗ рдмрд╛рдж, рдХрдВрдЯреНрд░реЛрд▓ 'рдореЗрди' рдореЗрдердб рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред
- рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ IoC рдХрдВрдЯреЗрдирд░ рдЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЬрд┐рдиреНрд╣реЗрдВ 'рдмреАрдиреНрд╕' рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдмрдирд╛рддрд╛ рд╣реИ, рдореИрдиреЗрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдкрд╕ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
Key takeaways
- рдЯрд╛рдЗрдЯ рдХрдкрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдЕрдирд▓рдЪреАрд▓рд╛ рдмрдирд╛рддреА рд╣реИ; рд▓реВрдЬ рдХрдкрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдлреНрд▓реЗрдХреНрд╕рд┐рдмрд▓ рдФрд░ рдореЗрдВрдЯреЗрдиреЗрдмрд▓ рдмрдирд╛рддреА рд╣реИред
- рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд░рдирд╛ рдХрдВрдХреНрд░реАрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
- рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди (DI) рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдЕрдкрдиреА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЦреБрдж рди рдмрдирд╛рдП, рдмрд▓реНрдХрд┐ рдмрд╛рд╣рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗред
- рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рд╕реЗрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди DI рдХреЗ рджреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВред
- рдЗрдиреНрд╡рд░реНрдЬрди рдСрдл рдХрдВрдЯреНрд░реЛрд▓ (IoC) рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХрд╛ рдХрдВрдЯреНрд░реЛрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рджреЗрддрд╛ рд╣реИред
- DI, IoC рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдПрдХ рддрдХрдиреАрдХ рд╣реИред
- рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ IoC рдХрдВрдЯреЗрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдмреАрдиреНрд╕) рдХреЛ рдореИрдиреЗрдЬ рдФрд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдХреЗ DI рдФрд░ IoC рдХреЛ рдСрдЯреЛрдореЗрдЯ рдХрд░рддрд╛ рд╣реИред
Key terms
Test your understanding
- рдЯрд╛рдЗрдЯ рдХрдкрд▓рд┐рдВрдЧ рдФрд░ рд▓реВрдЬ рдХрдкрд▓рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рд▓реВрдЬ рдХрдкрд▓рд┐рдВрдЧ рдХреНрдпреЛрдВ рдмреЗрд╣рддрд░ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИ?
- рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди (DI) рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЛрдб рдХреА рдореЗрдВрдЯреЗрдиреЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ?
- рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рд╕реЗрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ рдФрд░ рдЖрдк рдХрдм рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?
- рдЗрдиреНрд╡рд░реНрдЬрди рдСрдл рдХрдВрдЯреНрд░реЛрд▓ (IoC) рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
- рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ IoC рдХрдВрдЯреЗрдирд░ рдХреНрдпрд╛ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрд╛рдо рдХреЛ рдХреИрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ?