BeanFactory
ApplicationContext
ApplicationContext๋ BeanFactory๋ฅผ ์์๋ฐ๋๋ฐ ์ด์ธ์ ์ ๋ง์ ๋ถ๊ฐ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ฉ์์ง์์ค๋ฅผ ํ์ฉํ ๊ตญ์ ํ ๊ธฐ๋ฅ
ํ๊ฒฝ๋ณ์
์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฒคํธ
ํธ๋ฆฌํ ๋ฆฌ์์ค ์กฐํ
์คํ๋ง ์ปจํ ์ด๋๋ ๋ค์ํ ํ์์ ์ค์ ์ ๋ณด๋ฅผ ๋ฐ์๋๋ฆด ์ ์๋๋ก ์ ์ฐํ๊ฒ ์ค๊ณ๋์ด ์๋ค.
์ง๊ธ๊น์ง๋ AnnotationConfigApplicationContext ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐ ์ฝ๋๋ก๋ ์ ๋ณด๋ฅผ ๋๊ฒผ๋ค.
์ด์ธ์๋ GenericXmlApplicationContext ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ xml์ค์ ํ์ผ์ ๋๊ธธ์๋ ์๋ค.
๐๐ป๊ทธ๋ฌ๋ ์ต๊ทผ์๋ xml๊ธฐ๋ฐ์ ์ค์ ์ ์ ์ฌ์ฉํ์ง ์๊ณ ์ ๋
ธํ
์ด์
๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ํ๋ค.โ๐ป
์คํ๋ง์ BeanDefinition์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์์์ ์ด์ผ๊ธฐํ ๋ค์ํ ์ค์ ํ์์ ์ง์ํ๋ค.
์คํ๋ง ์ปจํ ์ด๋๋ ์๋ฐ ์ฝ๋์ธ์ง, XML์ธ์ง ๋ชฐ๋ผ๋ ๋๊ณ , BeanDefinition๋ง์ ์๋ฉด ๋๋ค.
@Bean(์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ ๋น ๋ฑ๋ก) < bean > (XML๊ธฐ๋ฐ ๋น ๋ฑ๋ก) ๋น ํ๋์ฉ ๋ฉํ ์ ๋ณด๊ฐ ์์ฑ๋๋ค. ์คํ๋ง ์ปจํ ์ด๋๋ ์ด ๋ฉํ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง ๋น์ ์์ฑํ๋ค.
์ข ๋ ์ฝ๋ ๋ ๋ฒจ๋ก ๊น๊ฒ ๋ค์ด๊ฐ๋ณด๋ฉด ๋ฐ์ ์ด๋ฏธ์ง์ ๊ฐ์ ๊ตฌ์กฐ์ด๋ค!
AnnotationConfigApplication์ AnnotationBeanDefinitionReader๋ฅผ ์ฌ์ฉํด์ Appconfig.class๋ฅผ ์ฝ๊ณ BeanDefinition์ ์์ฑํ๋ค.