ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

์˜์กด๊ฐ์ฒด ์ž๋™์ฃผ์ž…


์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ์—์„œ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•  ๋•Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

<constructor-org> (์ƒ์„ฑ์ž ์ฃผ์ž…)

<property> (setter ์ฃผ์ž…) 

ํƒœ๊ทธ๋กœ ์˜์กด ๊ฐ์ฒด ๋Œ€์ƒ์„ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ

ํ•„์š”ํ•œ ์˜์กด ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ์ฐพ์•„์„œ ์˜์กด ๋Œ€์ƒ ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ๊ฐ์ฒด์— ์ฃผ์ž…ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

 

๋งค๋ฒˆ ์“ฐ๊ธฐ ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์–ด๋…ธํ…Œ์ด์…˜

๊ฐ์ฒด๋งŒ ์ƒ์„ฑํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•œ๋‹ค.

@Autowired, @Resource ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

DI ์ž๋™ ์ฃผ์ž… ์„ค์ • ๋ฐฉ๋ฒ•


ํŒจํ‚ค์ง€ day01.ex05.autowired, autowired-context.xml ์ƒ์„ฑ

์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ์— ์ถ”๊ฐ€์ฝ”๋“œ๋ฅผ ์จ์ค€๋‹ค.

xmlns - ์†์„ฑ๊ฐ’์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ํƒœ๊ทธ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ์œ„ํ•œ ์ด๋ฆ„

xmlns:xsi - XML์ •๋ณด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ

xsi:schemaLocation - ๋‘ ๊ฐœ์˜ ๊ฐ’์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ (์ฒซ๋ฒˆ์งธ: ์‚ฌ์šฉํ•  ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ๋‘๋ฒˆ์งธ: ์ฐธ์กฐํ•  ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์œ„์น˜)

 

์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด <context:annotation-config/>๋ฅผ ์„ ์–ธํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

 

 

 

 

์˜์กด๊ฐ์ฒด ์ž๋™์ฃผ์ž… ํƒœ๊ทธ


@Autowired

๋จผ์ € ํƒ€์ž…์œผ๋กœ ์ฐพ๊ณ  ์—†์œผ๋ฉด ์ด๋ฆ„์œผ๋กœ ์ฐพ๋Š”๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜์€ ์ƒ์„ฑ์ž, ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ, ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์— ์ ์šฉ์‹œํ‚ฌ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

@Qualifier("์ด๋ฆ„")

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ๋™์ผ ํƒ€์ž… ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์„ ๋•Œ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ• ์ง€ ๊ตฌ๋ถ„ํ•ด์ค€๋‹ค.

๋นˆ์˜ ์ด๋ฆ„์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…ํ•ด์ฃผ๊ณ  @Autowired์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.

๋‹จ, ์ƒ์„ฑ์ž์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

@Resource(name="์ด๋ฆ„")

๋จผ์ € ์ด๋ฆ„์œผ๋กœ ๋นˆ์„ ์ฐพ๊ณ  ์—†์œผ๋ฉด ํƒ€์ž…์œผ๋กœ ์ฐพ๋Š”๋‹ค.

๋ช…์‹œ์ ์œผ๋กœ ์ด๋ฆ„ ์†์„ฑ์„ ์ ์–ด์ค˜์•ผํ•œ๋‹ค.

๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์—๋งŒ ์ ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ, ์ƒ์„ฑ์ž์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

ํด๋ž˜์Šค Document, Printer, Printer2 ์ƒ์„ฑ

 

์Šคํ”„๋ง ์„ค์ •ํŒŒ์ผ

์Šคํ”„๋ง ์„ค์ •ํŒŒ์ผ์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ๋งŒ ํ•ด๋‘”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํด๋ž˜์Šค ์•ˆ์—์„œ ์–ด๋…ธํ…Œ์ด์…˜ ๋ช…๋ น์„ ํ†ตํ•ด ์˜์กด๊ฐ์ฒด ์ž๋™์ฃผ์ž…์„ ์‹œํ‚จ๋‹ค.

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€