[Spring Framework] BeanFactory์ ApplicationContext
BeanFactory์ ApplicationContext
BeanFactory
- ์คํ๋ง ์ปจํ ์ด๋์ ์ต์์ ์ธํฐํ์ด์ค
- ์คํ๋ง ๋น์ ๊ด๋ฆฌํ๊ณ ์กฐํํ๋ ์ญํ ์ ๋ด๋นํ๋ค.
getBean()
์ ์ ๊ณตํ๋ค.- ์ง๊ธ๊น์ง ์ฌ์ฉํ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ BeanFactor๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด๋ค.
ApplicationContext
- BeanFactory ๊ธฐ๋ฅ์ ๋ชจ๋ ์์๋ฐ์์ ์ ๊ณตํ๋ค.
- ๋น์ ๊ด๋ฆฌํ๊ณ , ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ BeanFactory๊ฐ ์ ๊ณตํด์ฃผ๋๋ฐ, ๋์ ์ฐจ์ด๋ฅผ ์์๋ณด์
-
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋๋ ๋น์ ๊ด๋ฆฌํ๊ณ , ์กฐํํ๋ ๊ธฐ๋ฅ์ ๋ฌผ๋ก ์ด๊ณ , ์ ๋ง์ ๋ถ๊ฐ๊ธฐ๋ฅ์ด ํ์ํ๋ค.
- ๋ฉ์์ง์์ค๋ฅผ ํ์ฉํ ๊ตญ์ ํ ๊ธฐ๋ฅ
- ์๋ฅผ ๋ค์ด, ํ๊ตญ์์ ๋ค์ด์ค๋ฉด ํ๊ตญ์ด๋ก, ์์ด๊ถ์์ ๋ค์ด์ค๋ฉด ์์ด๋ก ์ถ๋ ฅ
- ํ๊ฒฝ๋ณ์
- ๋ก์ปฌ, ๊ฐ๋ฐ, ์ด์๋ฑ์ ๊ตฌ๋ถํด์ ์ฒ๋ฆฌ
- ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฒคํธ
- ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๊ณ , ๊ตฌ๋ ํ๋ ๋ชจ๋ธ์ ํธ๋ฆฌํ๊ฒ ์ง์
- ํธ๋ฆฌํ ๋ฆฌ์์ค ์กฐํ
- ํ์ผ, ํด๋์คํจ์ค, ์ธ๋ถ ๋ฑ์์ ๋ฆฌ์์ค๋ฅผ ํธ๋ฆฌํ๊ฒ ์กฐํ
์ ๋ฆฌ
- ApplicationContext๋ BeanFactory์ ๊ธฐ๋ฅ์ ์์๋ฐ๋๋ค.
- ApplicationContext๋ ๋น ๊ด๋ฆฌ๊ธฐ๋ฅ + ํธ๋ฆฌํ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- BeanFactory๋ฅผ ์ง์ ์ฌ์ฉํ ์ผ์ ๊ฑฐ์ ์๋ค. ๋ถ๊ฐ๊ธฐ๋ฅ์ด ํฌํจ๋ ApplicationContext๋ฅผ ์ฌ์ฉํ๋ค.
- BeanFactory๋ ApplicationContext๋ฅผ ์คํ๋ง ์ปจํ ์ด๋๋ผ ํ๋ค.
๋ค์ํ ์ค์ ํ์ ์ง์ - ์๋ฐ ์ฝ๋, XML
- ์คํ๋ง ์ปจํ
์ด๋๋ ๋ค์ํ ํ์์ ์ค์ ์ ๋ณด๋ฅผ ๋ฐ์๋๋ฆด ์ ์๊ฒ ์ ์ฐํ๊ฒ ์ค๊ณ๋์ด ์๋ค.
- ์๋ฐ์ฝ๋, XML, Groovy
์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ ์๋ฐ ์ฝ๋ ์ค์ ์ฌ์ฉ
new AnnotationConfigApplicationContext(AppConfig.class)
AnnotationConfigApplicationContext
ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด์ ์๋ฐ ์ฝ๋๋ก๋ ์ค์ ์ ๋ณด๋ฅผ ๋๊ธฐ๋ฉด ๋๋ค.
XML ์ค์ ์ฌ์ฉ
- ์ต๊ทผ์๋ ์คํ๋ง ๋ถํธ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ฉด์ XML๊ธฐ๋ฐ์ ์ค์ ์ ์ ์ฌ์ฉํ์ง ์๋๋ค. ์์ง ๋ง์ ๋ ๊ฑฐ์ ํ๋ก์ ํธ ๋ค์ด XML๋ก ๋์ด ์๊ณ , ๋ XML์ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ ์์ด ๋น ์ค์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ฅ์ ๋ ์์ผ๋ฏ๋ก ํ๋ฒ์ฏค ๋ฐฐ์๋๋ ๊ฒ๋ ๊ด์ฐฎ๋ค.
GenericXmlApplicationContext
๋ฅผ ์ฌ์ฉํ๋ฉด์ xml ์ค์ ํ์ผ์ ๋๊ธฐ๋ฉด ๋๋ค.
์คํ๋ง ๋น ์ค์ ๋ฉํ ์ ๋ณด - BeanDefinition
- ์คํ๋ง์ ์ด๋ป๊ฒ ์ด๋ฐ ๋ค์ํ ์ค์ ํ์์ ์ง์ํ๋ ๊ฒ์ผ๊น? ๊ทธ ์ค์ฌ์๋
BeanDefinition
์ด๋ผ๋ ์ถ์ํ๊ฐ ์๋ค. - ์ฝ๊ฒ ์ด์ผ๊ธฐํด์ ์ญํ ๊ณผ ๊ตฌํ์ ๊ฐ๋
์ ์ผ๋ก ๋๋ ๊ฒ์ด๋ค!
- XML์ ์ฝ์ด์ BeanDefinition์ ๋ง๋ค๋ฉด ๋๋ค.
- ์๋ฐ ์ฝ๋๋ฅผ ์ฝ์ด์ BeanDefinition์ ๋ง๋ค๋ฉด ๋๋ค.
- ์คํ๋ง ์ปจํ ์ด๋๋ ์๋ฐ ์ฝ๋์ธ์ง, XML์ธ์ง ๋ชฐ๋ผ๋ ๋๋ค. ์ค์ง BeanDefinition๋ง ์๋ฉด ๋๋ค.
BeanDefinition
์ ๋น ์ค์ ๋ฉํ์ ๋ณด๋ผ ํ๋ค.@Bean
,<bean>
๋น ๊ฐ๊ฐ ํ๋์ฉ ๋ฉํ ์ ๋ณด๊ฐ ์์ฑ๋๋ค.
- ์คํ๋ง ์ปจํ ์ด๋๋ ์ด ๋ฉํ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง ๋น์ ์์ฑํ๋ค.
์ ๋ฆฌ
BeanDefinition
์ ์ง์ ์์ฑํด์ ์คํ๋ง ์ปจํ ์ด๋์ ๋ฑ๋กํ ์ ๋ ์๋ค. ํ์ง๋ง ์ค๋ฌด์์BeanDefinition
์ ์ง์ ์ ์ํ๊ฑฐ๋ ์ฌ์ฉํ ์ผ์ ๊ฑฐ์ ์๋ค.BeanDefinition
์ ๋ํด์๋ ๋๋ฌด ๊น์ด์๊ฒ ์ดํดํ๊ธฐ ๋ณด๋ค๋, ์คํ๋ง์ด ๋ค์ํ ํํ์ ์ค์ ์ ๋ณด๋ฅผBeanDefinition
์ผ๋ก ์ถ์ํํด์ ์ฌ์ฉํ๋ ๊ฒ ์ ๋๋ง ์ดํดํ๋ฉด ๋๋ค.- ๊ฐ๋ ์คํ๋ง ์ฝ๋๋ ์คํ๋ง ๊ด๋ จ ์คํ ์์ค์ ์ฝ๋๋ฅผ ๋ณผ ๋,
BeanDefinition
์ด๋ผ๋ ๊ฒ์ด ๋ณด์ผ ๋๊ฐ ์๋ค. ์ด๋ ์ด๋ฌํ๋ฉ์ปค๋์ฆ
์ ๋ ์ฌ๋ฆฌ๋ฉด ๋๋ค.
์ฐธ์กฐ : Spring ํต์ฌ์๋ฆฌ
Leave a comment