Container Context
Spring IoC ์ปจํ
์ด๋ ์๊ฐ
Spring IoC(Inversion of Control) ์ปจํ
์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฒด(bean)๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. ApplicationContext
์ธํฐํ์ด์ค๋ Spring์ IoC ์ปจํ
์ด๋๋ฅผ ๋ํ๋ด๋ฉฐ, bean์ ์ธ์คํด์คํ, ์ค์ , ์กฐ๋ฆฝ์ ๋ด๋นํฉ๋๋ค.
์ปจํ ์ด๋๋ ๊ตฌ์ฑ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ์ธ์คํด์คํํ๊ณ ์ค์ ํ๋ฉฐ, ์ด๋ป๊ฒ ์กฐ๋ฆฝํ ์ง์ ๋ํ ์ง์๋ฅผ ๋ฐ์ต๋๋ค. @Component, @Configuration ์ ๋ ธํ ์ด์ ์ด ๋ถ์ ์ค์ ํด๋์ค, XML ํ์ผ, ๋๋ Groovy ์คํฌ๋ฆฝํธ ๋ฑ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
์ฃผ์ ApplicationContext ๊ตฌํ์ฒด
์คํ๋ง์ ApplicationContext
์ธํฐํ์ด์ค์๋ ์ฌ๋ฌ ๊ฐ์ง ๊ตฌํ์ฒด๊ฐ ์์ต๋๋ค. ๊ทธ ์ค์์๋ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ AnnotationConfigApplicationContext
์ ClassPathXmlApplicationContext
์
๋๋ค.
AnnotationConfigApplicationContext: ์๋ฐ ๊ธฐ๋ฐ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๋ฅผ ์ค์ ํ ๋ ์ฌ์ฉ.
ClassPathXmlApplicationContext: XML ํ์ผ ๊ธฐ๋ฐ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๋ฅผ ์ค์ ํ ๋ ์ฌ์ฉ.
Spring Boot์์ ApplicationContext ์์ฑ
Spring Boot์์๋ ๋ณ๋์ ์ค์ ์์ด ๊ธฐ๋ณธ์ ์ธ ์ค์ ๊ท์น์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๊ฐ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ๋ณ๋์ ์ฌ์ฉ์ ์ฝ๋๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ ํ์๊ฐ ์์ผ๋ฉฐ, Spring Boot์ ์๋ ์ค์ ์ด ์ด๋ฅผ ์ฒ๋ฆฌํด์ค๋๋ค.
๊ตฌ์ฑ ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฉํ๋ฐ์ดํฐ๋ Spring IoC ์ปจํ ์ด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํฌ๋ํธ๋ฅผ ์ด๋ป๊ฒ ์ธ์คํด์คํํ๊ณ ์ค์ ํ๋ฉฐ ์กฐ๋ฆฝํ ์ง๋ฅผ ์๋ ค์ค๋๋ค. ๊ตฌ์ฑ ๋ฉํ๋ฐ์ดํฐ๋ ์๋ฐ ๊ธฐ๋ฐ, ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ, ๋๋ XML ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๊ฐ ํ์ํ bean์ ๊ด๋ฆฌํฉ๋๋ค.
์๋ฐ ๊ธฐ๋ฐ ์ค์
์๋ฐ ๊ธฐ๋ฐ ์ค์ ์์๋ @Configuration
ํด๋์ค์ @Bean
์ ๋
ธํ
์ด์
์ ์ฌ์ฉํ์ฌ bean์ ์ ์ํฉ๋๋ค. ์ด ์ค์ ์ ์ธ๋ถ์ ์๋ฐ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
XML ๊ธฐ๋ฐ ์ค์
XML ๊ธฐ๋ฐ ์ค์ ์์๋ <bean>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ bean์ ์ ์ํฉ๋๋ค. XML ํ์ผ์ ๊ฐ bean์ id์ ํด๋์ค ์ ๋ณด๋ฅผ ์ ์ํ๊ณ , ์์กด ๊ด๊ณ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
Groovy ๊ธฐ๋ฐ ์ค์
Groovy DSL์ ์ฌ์ฉํด๋ bean์ ์ ์ํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ์์ Grails ํ๋ ์์ํฌ์์ ํํ ์ฌ์ฉ๋๋ฉฐ, XML๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์ธ๋ถ ์ค์ ์ ์ ์ํ ์ ์์ต๋๋ค.
ApplicationContext๋ฅผ ์ฌ์ฉํ Bean ์ ๊ทผ
ApplicationContext
๋ ๋ค์ํ bean์ ๋ฑ๋กํ๊ณ , ํ์์ ๋ฐ๋ผ ์ด๋ฅผ ๊ฒ์ํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, XML ๊ธฐ๋ฐ ์ค์ ์์ ClassPathXmlApplicationContext
๋ฅผ ์ฌ์ฉํด ์ค์ ํ์ผ์ ๋ก๋ํ๊ณ , ๋ฑ๋ก๋ bean์ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ์์ผ๋ก Spring IoC ์ปจํ
์ด๋๊ฐ ๊ด๋ฆฌํ๋ bean์ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Groovy ๊ธฐ๋ฐ ์ค์ ์์๋ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, GenericApplicationContext
๋ฅผ ํตํด ์ฌ๋ฌ ํ์์ ์ค์ ํ์ผ์ ์กฐํฉํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
Last updated