IoC(Inversion of Control), DI(Dependency Injection)
IoC
μ μ΄ μμ μ μμΉ, λμ ν΄μ€λ€
DI
μμ‘΄μ± μ£Όμ
, λμ λ£μ΄μ€λ€
Beanμ΄λ?
μλ°μμμ javaBean
λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν κ΅¬μ‘°μ²΄λ‘ μλ° λΉ κ·μ½μ λ°λ₯΄λ ꡬ쑰체.
private νλ‘νΌν°μ getter/setter λ‘λ§ λ°μ΄ν°λ₯Ό μ κ·Όνλ€.
μΈμκ° (argument) μλ κΈ°λ³Έ μμ±μκ° μλ€.
μ€νλ§μμμ Bean
μ€νλ§ IoC 컨ν μ΄λμ μν΄ μμ±λκ³ κ΄λ¦¬λλ κ°μ²΄.
μλ°μμμ²λΌ new Object(); λ‘ μμ±νμ§ μλλ€.
κ°κ°μ Bean λ€ λΌλ¦¬λ μλ‘λ₯Ό νΈλ¦¬νκ² μμ‘΄ (μ¬μ©) ν μ μμ.
μ€νλ§ μ»¨ν
μ΄λ κ°μ
ApplicationContext μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ 곡λλ μ€νλ§ μ»¨ν μ΄λλ Bean κ°μ²΄μ μμ± λ° Bean λ€μ 쑰립μ λ΄λΉ (μνΈ μμ‘΄μ± κ΄λ¦¬)

Beanμ λ±λ‘
κ³Όκ±°μλ xml λ‘ μ€μ μ λ°λ‘ κ΄λ¦¬νμ¬ λ±λ‘ (λΆνΈ)
νμ¬λ annotation κΈ°λ°μΌλ‘ Bean λ±λ‘
@Bean, @Controller, @Service
Bean λ±λ‘ μ μ 보
Class κ²½λ‘
Bean naming
κΈ°λ³Έμ μΌλ‘λ μ Class μ΄λ¦μμ 첫 λ¬Έμλ§ μλ¬Έμλ‘ λ³κ²½ β accountService, userDao
μνλ κ²½μ° λ³κ²½ κ°λ₯
Scope
Bean μ μμ±νλ κ·μΉsingleton
default κ°μΌλ‘ 컨ν μ΄λμ λ¨μΌλ‘ μμ±prototype
μμ μλ§λ€ Beanμ μλ‘ μμ±νκ³ μΆμ κ²½μ°request
http μμ²λ§λ€ μλ‘κ² Beanμ μμ±νκ³ μΆμ κ²½μ°
Bean LifeCycle callback(λΉ μλͺ
μ£ΌκΈ° μ½λ°±ν¨μ)

callback : μ΄λ€ μ΄λ²€νΈκ° λ°μνλ κ²½μ° νΈμΆλλ λ©μλ
lifecycle callback
Beanμ μμ±νκ³ μ΄κΈ°ννκ³ νκ΄΄νλ λ± νΉμ μμ μ νΈμΆλλλ‘ μ μλ ν¨μ
μ£Όλ‘ λ§μ΄ μ¬μ©λλ μ½λ°±
@PostConstruct
λΉ μμ± μμ μ νμν μμ μ μν@PreDestroy
λΉ νκ΄΄(μ£Όλ‘ μ΄ν리μΌμ΄μ μ’ λ£) μμ μ νμν μμ μ μν
Last updated
Was this helpful?