์์ ์ดํด๋ณธ ๋ด์ฉ์ ์์ ์๋ฐ ์ฝ๋๋ง์ ์ฌ์ฉํ์๋ค. ์ฌ๊ธฐ์ ์คํ๋ง์ ์ ์ฉํ๋ค.
AppConfig ํด๋์ค์ ์ค์ ์ ๊ตฌ์ฑํ๋ค๋ ๋ป์ @Configuration์ ๋ถ์ฌ์ฃผ๊ณ , ๊ฐ ๋ฉ์๋์ @Bean์ ๋ถ์ฌ ์คํ๋ง ์ปจํ
์ด๋์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค
MemberAppํด๋์ค์๋ ์คํ๋ง ์ปจํ
์ด๋๋ฅผ ์ ์ฉ!
OrderAppํด๋์ค์๋ ์คํ๋ง ์ปจํ
์ด๋๋ฅผ ์ ์ฉ!
๊ธฐ์กด์๋ AppConfig๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด ์์ฑ ๋ฐ DI๋ฅผ ์ ์ฉํ์ง๋ง ์ฌ๊ธฐ์
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
ApplicationContext(์คํ๋ง ์ปจํ
์ด๋)๋ฅผ ํตํด์ ์ฌ์ฉํ๋ค.
์ฝ๋๊ฐ ๋ฐ๋์์ง๋ง ์ง์ AppConfig๋ฅผ ์ฌ์ฉํ์ ๋์๋ ๊ฒฐ๊ณผ๋ ๊ฐ์๋ค.
ApplicationContext๋ฅผ ์คํ๋ง ์ปจํ
์ด๋๋ผ๊ณ ํ๋ค. ApplcationContext๋ ์ธํฐํ์ด์ค์ด๋ค.
์คํ๋ง ์ปจํ
์ด๋๋ XML ๊ธฐ๋ฐ๊ณผ ์ ๋
ธํ
์ด์
๊ธฐ๋ฐ์ ์๋ฐ ์ค์ ํด๋์ค๋ก ๋ง๋ค์ ์๋๋ฐ ์์์๋ @(์ ๋
ธํ
์ด์
)๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง ์ปจํ
์ด๋๋ฅผ ๋ง๋ค์๋ค.
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
์ด์ฝ๋์์ AnnotationConfigApplicationContext(AppConfig.class)๋ ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด์ด๋ค.
๋ค์์ ์คํ๋ง ์ปจํ
์ด๋์ ์์ฑ ๊ณผ์ ์ด๋ค.
์คํ๋ง ์ปจํ
์ด๋ ์์ฑ
์คํ๋ง ์ปจํ
์ด๋๋ฅผ ์์ฑํ ๋๋ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
์ด๋ฒ ์์ ์์๋ AppConfig๋ฅผ ๊ตฌ์ฑ ์ ๋ณด๋ก ์ง์ ํ๋ค.
์คํ๋ง ๋น ๋ฑ๋ก
์คํ๋ง ์ปจํ
์ด๋๋ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ์ค์ ํด๋์ค ์ ๋ณด๋ฅผ ์ฌ์ฉํด ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค.
โ ๏ธ์ฃผ์ํ ์ ์ ๋น ์ด๋ฆ์ ํญ์ ๋ค๋ฅธ ์ด๋ฆ์ ๋ถ์ฌํด์ผ ํ๋คโผ๏ธ
์คํ๋ง ๋น ์์กด๊ด๊ณ ์ค์ - ์ค๋น
์คํ๋ง ๋น ์์กด๊ด๊ณ ์ค์ - ์๋ฃ
์คํ๋ง ์ปจํ
์ด๋๋ ์ค์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํด์ ์์กด๊ด๊ณ๋ฅผ ์ฃผ์
(DI)ํ๋ค.
๋จ์ํ ์๋ฐ ์ฝ๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ณ ์ฝ๋ ๊ธธ์ด๊ฐ AppConfig๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค๋ ๊ธด๋ฐ๋ ์ด๋ ๊ฒ ์คํ๋ง์ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์ด ๋ด์ฉ๋ง์ผ๋ก๋ ์๊ธฐ๋ ์ด๋ ค์ธ ๊ฒ์ด๋ค.
๋ค์ ์ฑ๊ธํค ์ปจํ ์ด๋์์ ์ค๋ช ํ๋ ค ํ๋ค.