IoC 컨ν
μ΄λλ μλ° κ°μ²΄μ λΌμ΄ν μ¬μ΄ν΄μ μ±
μμ§κ³ μμ‘΄μ±μ κ΄λ¦¬ν΄μ£Όλ 컨ν
μ΄λ μ΄λ€.
μ μ¬μ©νλλ°?
IoC 컨ν
μ΄λλ₯Ό μ¬μ©νμ§ μλλ€λ©΄ κ°λ°μκ° νμν κ°μ²΄κ° μμλλ§λ€ New ν€μλλ‘ μμ±μ ν κ²μΈλ°, IoC 컨ν
μ΄λλ₯Ό μ¬μ©νλ€λ©΄ κ°λ°μκ° νμν κ°μ²΄λ₯Ό IoC 컨ν
μ΄λκ° μ 곡μ ν΄μ€ κ°λ°μλ λΉμ§λμ€ λ‘μ§μ μ§μ€ ν μ μλ€. κ°μ²΄ μμ± μ½λλ μμΌλ―λ‘ TDDμλ μ©μ΄νλ€.
Bean Factory, Application Context
μ€νλ§ μ»¨ν
μ΄λλ λκ°μ§κ° μλ€. Bean Factoryμ Bean Factoryλ₯Ό μμνλ Application Contextμ΄λ€.
- Bean Factory

- μ€νλ§ μ»¨ν
μ΄λμ μ΅μμ μΈν°νμ΄μ€μ΄λ€.
- ν©ν 리 λμμΈμ ꡬνν κ²μΌλ‘, Beanμ κ΄λ¦¬, μμ±, μ‘°ν μν μ νλ€.
- getBean() λ©μλλ₯Ό μ 곡νλ€.
- 컨ν
μ΄λκ° κ΅¬λλ λ Beanμ μμ±νλκ² μλ νμν λ μμ²μ μν΄μ μ¬μ© μμ μ Beanμ΄ μμ±λλ μ§μ°λ‘λ©(Lazy Loading) λ°©μμ μ¬μ©νλ€.
- Application Context

- Bean Factoryμ κΈ°λ₯μ λͺ¨λ μμ λ°μμ μ 곡νλ€.
- Bean Factoryμ λ¬λ¦¬ 컨ν
μ΄λκ° κ΅¬λλ λ Beanμ μμ±νλ μ¬μ λ‘λ©(Pre Loading) λ°©μμ΄ μ¬μ©λλ€.
- Bean Factoryλ³΄λ€ λ λ€μν κΈ°λ₯μ μ 곡νλ€.
- MessageSource λ©μΈμ§ μμ€λ₯Ό νμ©ν κ΅μ ν κΈ°λ₯ -> νκ΅μμ λ€μ΄μ€λ©΄ νκ΅μ΄, μμ΄λ‘ λ€μ΄μ€λ©΄ μμ΄λ‘ λ²μν΄μ€λ€.
- EnvironmentCapable νκ²½λ³μ -> λ‘컬, κ°λ°, μ΄μ νκ²½λ³μλ€μ ꡬλΆν΄μ μ²λ¦¬ νλ€.
- ApplicationEventPublisher μ΄ν리μΌμ΄μ
μ΄λ²€νΈ -> μ΄λ²€νΈλ₯Ό λ°ννκ³ κ΅¬λ
νλ λͺ¨λΈμ νΈλ¦¬νκ² μ§μνλ€.
- ResourceLoader νΈλ¦¬ν 리μκ·Έ μ‘°ν -> νμΌ, ν΄λμ€ ν¨μ€, μΈλΆ λ±μμ 리μμ€λ₯Ό νΈλ¦¬νκ² μ‘°ν νλ€.
- μμ¦μ Bean Factoryλ₯Ό μ§μ μ¬μ©νμ§ μκ³ , λΆκ³Ό κΈ°λ₯μ΄ μΆκ°λ Application Contextλ₯Ό μ¬μ©νλ€κ³ νλ€.