Spring Container
์คํ๋ง์ ํต์ฌ!
DI (์์กด์ฑ ์ฃผ์ )๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ Bean (๊ฐ์ฒด)๋ฅผ ๊ด๋ฆฌํ๋ค
์ ํ
BeanFactory
Bean์ ์ฌ์ฉํ ๋ ๋ก๋ฉ (Lazy-loading)
Bean ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ class
Bean์ ์์ฑํ๊ณ , ์กฐํํ๊ณ ๋๋ ค์ฃผ๋ ๋ฑ
Bean์ ๊ด๋ฆฌ
ํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋คBean Factory๋ Bean์ ์ ์๋ฅผ ์ฆ์ ๋ก๋ฉํ์ง๋ง, Bean ์์ฒด๋ฅผ ํธ์ถํ ๋ ๊น์ง๋ ์ธ์คํด์คํ ํ์ง ์๋๋ค
getBean()
์ด ํธ์ถ๋๋ฉด, ๊ทธ ๋์์ผ Factory๊ฐ ์์กด์ฑ ์ฃผ์ (DI)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ Bean์ ์ธ์คํด์คํ ํ๊ณ , Bean์ ํน์ฑ์ ์ค์ ํ๋ค โOn-demand
๋ฐฉ์
Bean์ ์์ฑํ๊ณ , ๊ด๊ณ๋ฅผ ์ค์ ํ๋ IoC์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ด์ ์ด ๋ง์ถฐ์ ธ ์๋ค
Bean์ ์์ฑํ๊ณ ๋ก๋ฉํ๋ ๋ฐฉ์
BeanFactory
๋Lazy-loading
์ ํ๋คMethod๋ class๊ฐ Bean loading ์์ฒญ์ ๋ฐ๋ ์์ ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋ก๋ฉํ๋ ๋ฐฉ์์ด๋ค
๊ทธ๋์
.getBean()
method์ ์ํด ์์ฒญ์ ๋ฐ๋ ์์ ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋ก๋๋๋ค
ApplicationContext
๋ฐํ์ ์คํ ์ ๋ชจ๋ Bean์ ๋ก๋ฉ (Pre-loading)
BeanFactory์ ์ ์ฌํ์ง๋ง, ๋ ํฅ์๋ ํํ์ ์ปจํ ์ด๋๋ค
๋ณ๋์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํด์ Bean์ ์์ฑ, ๊ด๊ณ ์ค์ ๋ฑ์ ์ ์ด๋ฅผ ์ด๊ดํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๊ณ ์๋ค
Bean์ ์์ฑํ๊ณ ๋ก๋ฉํ๋ ๋ฐฉ์
ApplicationContext
๋Pre-loading
์ ํ๋ค๋ชจ๋ Bean๋ค๊ณผ ์ค์ ํ์ผ๋ค์ด ApplicationContext์ ์ํด ๋ก๋ ์์ฒญ์ด ๋ ๋ ์ธ์คํด์ค๋ก ๋ง๋ค์ด์ง๊ณ , ๋ก๋๋๋ค
BeanFactory ์ ApplicationContext
๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋๋์ด์ง ์ด์ ๋
์ฌ์ฉ ๋น๋
์์ฌ์ฉ๋๋ ์์์ ๊ด๊ณ
๋๋ฌธ์ด๋ค์์ฃผ ์ฌ์ฉ๋์ง ์๋ Bean์ด๋ผ๋ฉด ์๋ชจ๋๋ ์์์ ์๋ผ๊ธฐ ์ํด ์ค์ ์์ฒญ ์์๋ง ๋ก๋ฉํ๊ณ (Lazy-loading) โ
BeanFactory ์ฌ์ฉ
์์ฃผ ์ฌ์ฉ๋๋ Bean์ด๋ผ๋ฉด ํ ๋ฒ์ ๋ก๋ํ๋ ๊ฒ (Pre-loading)์ด ์ข๋ค โ
ApplicationContext ์ฌ์ฉ
Last updated