[Spring ๊ธฐ๋ณธ] 5. ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ์—๋Š” ์‹ฑ๊ธ€ํ†ค์— ๊ด€๋ จํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์Šต๋‹ˆ๋‹ค!๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๊ณ ๊ณ !!1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‹ฑ๊ธ€ํ†ค์Šคํ”„๋ง์€ ํƒœ์ƒ์ด ๊ธฐ์—…์šฉ ์˜จ๋ผ์ธ ์„œ๋น„์Šค ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๋Œ€๋ถ€๋ถ„์˜ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.๋ชฐ๋ก  ์›น์ด ์•„๋‹Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๋„ ์–ผ๋งˆ๋“ ์ง€ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ณ ๊ฐ์ด ๋™์‹œ์— ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.1. ํด๋ผ์ด์–ธํŠธ A, B, C๊ฐ€ memberService๋ฅผ ์Šคํ”„๋งํ•œํ…Œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.2. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ DI ์ปจํ…Œ์ด๋„ˆ(AppConfig)๋Š” new๋กœ memberService๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.=>A๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , B๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , C๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ ..3. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ๊ณ ๊ฐ์ด..
[Spring ๊ธฐ๋ณธ] 4. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ์Šคํ”„๋ง ๋นˆ๐Ÿซ›
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด๊ฐ€๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.๊ณ ๊ณ ์”ฝ!!1. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๋จผ์ € ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.//์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);์ €๋ฒˆ ์„น์…˜ ๋งˆ์ง€๋ง‰ ์ฏ”์Œ์— ๋‚˜์™”๋˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.new๋กœ ํ•ด์„œ AnnotationConfigApplicationContext ์ด๋ฆ„๋„ ๊ธด ์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ AppConfig๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ(๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ๋„˜๊ฒผ์Šต๋‹ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ApplicationContext๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด ApplicationContext๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.๋‹ค..