
IoC(Inversion of Control : ์ ์ด์ ์ญ์ )
- ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์
์์๋ ๊ฐ์ฒด ์์ฑ๊ณผ ์์กด ๊ด๊ณ ์ค์ , ์ฌ์ฉ, ์ ๊ฑฐ ๋ฑ์ ์ฝ๋ ๋์ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ๋ด๋นํ๋ค.
์ด๋ฅผ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ์ฝ๋ ๋์ ์ ๊ฐ์ฒด์ ๋ํ ์ ์ด๊ถ์ ๊ฐ๊ณ ์๋ค๊ณ ํด์ IoC๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์คํ๋ง ์ปจํ
์ด๋๋ฅผ IoC ์ปจํ
์ด๋๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- ๊ฐ์ฒด๊ฐ ์คํ๋ง ์ปจํ
์ด๋์์ ๊ด๋ฆฌ๋๊ณ ์๋ Bean์ด๋ผ๋ฉด @Autowired ๋ฅผ ํตํด์ ๊ฐ์ฒด๋ฅผ ์ฃผ์
๋ฐ์ ์ ์๋ค.
๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ์ง ์๊ณ ์คํ๋ง ์ปจํ
์ด๋์์ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ ์ดํ๋ฉฐ ํด๋น ๊ฐ์ฒด๋ฅผ ์ฃผ์
์์ผ์ค๋ค. ์ด๊ฒ ๋ฐ๋ก ์ ์ด์ ์ญ์ ๋์๋ค๋ IoC์ ๊ฐ๋
์ด๋ค.
DI(Dependency Injection : ์์กด์ฑ ์ฃผ์
)
- ์คํ๋ง์ด ๋ค๋ฅธ ํ๋ ์์ํฌ์ ์ฐจ๋ณํ๋์ด ์ ๊ณตํ๋ ์์กด ๊ด๊ณ ์ฃผ์
๊ธฐ๋ฅ์ด๋ค.
๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑํ๋ ๊ฒ์ด ์๋ ์ธ๋ถ์์ ์์ฑํ ํ ์ฃผ์
์์ผ์ฃผ๋ ๋ฐฉ์์ด๋ค.
DI๋ก ์ธํด์ ๋ชจ๋ ๊ฐ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๊ณ ์ ์ฐ์ฑ์ด ๋์์ง๋ค.
์์กด ๊ฐ์ฒด ์ฃผ์
๋ฐฉ๋ฒ
- Constructor๋ฅผ ์ด์ฉํ ์์กด ๊ฐ์ฒด ์ฃผ์
<bean id="" class="">
<constructor-arg ref=""></constructor-arg>
</bean>
- setter๋ฅผ ์ด์ฉํ ์์กด ๊ฐ์ฒด ์ฃผ์
<bean id="" class"">
<property name="" value=""></property>
</bean>
- List ํ์
์์กด ๊ฐ์ฒด ์ฃผ์
<bean id="" class="">
<property name="">
<list>
<value></value>
<value></value>
<value></value>
</list>
</property>
</bean>
- Map ํ์
์์กด ๊ฐ์ฒด ์ฃผ์
<bean>
<property name="">
<map>
<entry>
<key><value></value></key>
<value></value>
</entry>
</map>
</property>
</bean>
์ฐธ๊ณ