์ธํ๋ฐ : ๋ฐฑ๊ธฐ์ ์ ์์ ๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ํ๋ ์์ํฌ -1
์ธํ๋ฐ : ์์ ๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ์ ๋ฌธ IoC ๋ถํฐ DI๊น์ง์ ๋ด์ฉ ์ ๋ฆฌ
๊ฐ์ ์์ ์ฝ๋ :
๋ฐฑ๊ธฐ์ ๊ฐ์ ๊ฐ์ข๋ ธํธ :
์คํ๋ง์ ์ฃผ์๊ธฐ์
IoC/DI, AOP, PSA๋ ์ ํ๋ฆฌ์ผ์ด์ ์ POJO๋ก ๊ฐ๋ฐํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์
1. IoC(Inversion of Control) ์ ์ด๊ถ์ ์ญ์
์ผ๋ฐ์ ์ธ ์์กด์ฑ์ ๋ํ ์ ์ด๊ถ : ์๊ธฐ๊ฐ ๋ง๋ค์ด ์
IoC๋ ๋ด๊ฐ ์ฌ์ฉํ ์์กด์ฑ์ ํ์ (๋๋ ์ธํฐํ์ด์ค)๋ง ๋ง์ผ๋ฉด ์ด๋ค๊ฒ์ด๋ ์๊ด์์ด ์์์ ํด์ค, ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋ ํ ์คํธ๋ ํธํจ
- DI(Dependency ) ์์กด์ฑ์ฃผ์
: DI๋ ์ผ์ข
์ IoC, ์ ์ด๊ถ ์์ฒด๊ฐ ๋ด๊ฐ ์๋๋ผ ์ธ๋ถ์ ๋๊ตฐ๊ฐ๊ฐ ํด์ฃผ๊ธฐ ๋๋ฌธ
ํ์ํ ์์กด์ฑ์ ์ด๋ป๊ฒ ๋ฐ์์ฌ ๊ฒ์ธ๊ฐ ? ๋ฐฉ๋ฒ์ ์ธ๊ฐ์ง !
1. ์์ฑ์ (์คํ๋ง ๋ ํผ๋ฐ์ค์์ ๊ถ์ฅ)
2. ํ๋
3. Setter
- ๋น(Bean) : ์คํ๋ง IoC ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
๋ฑ๋ก๋ฐฉ๋ฒ ?
1. Component Scanning : @๊ฐ ๋ถ์ด์๋ ๋ชจ๋ class๋ค์ ์ฐพ์์ Bean์ผ๋ก ๋ฑ๋กํด์ฃผ๋ ๊ฒ
(๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ง์ owner Controller๋ฅผ ๋ฑ๋กํ์ง ์์๋, ์คํ๋ง์ด ์์์ IoC์ปจํ ์ด๋๊ฐ ๋ง๋ค์ด์ง ๋ @๋ฅผ ๋ณด๊ณ ๋ฑ๋ก)
์ข ๋ฅ : @Component, @Repository, @Service, @Controller, @Configuration...etc
2. ์ง์ XML์ด๋ ์๋ฐ ์ค์ ํ์ผ์ ๋ฑ๋ก (ํ์ง๋ง ๊ทธ๋ฐ์ผ์ ์์ฃผ ์์)