๐Ÿ“Œย 9์ฃผ์ฐจ, (12์žฅ) ํ™•์žฅ์„ฑ ์žˆ๋Š” DI ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ฐœ์„ 

โœ…ย ํ•„๋“œ์™€ setter ๋ฉ”์†Œ๋“œ์— @Inject ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๋ชฉํ‘œ

Untitled

ํด๋ž˜์Šค์˜ ์˜์กด๊ด€๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Setter, Field, Constructor Injector๋ชจ๋‘ Injector interface๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉฐ ๊ตฌํ˜„ํ•˜๋ฉฐ ๊ณตํ†ต๋˜๋Š” ์‚ฌํ•ญ๋“ค์€ AbstractInjector๋กœ ๋ชจ์•„๋‘ก๋‹ˆ๋‹ค.

AbstractInjector

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-23 แ„‹แ…ฉแ„’แ…ฎ 11.00.49.png

AbstractInjector๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” inject์—์„œ ๊ฐ ์ธ์ ํ„ฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋™์ž‘์„ ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด์„ ํ†ตํ•ด ํ•˜์œ„ ๊ตฌํ˜„์ฒด์—๊ฒŒ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Injector ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด๋“ค์€ ๋‹ค๋ฅธ ์ธ์ ํ„ฐ๋“ค๊ณผ ๊ตฌ๋ณ„๋˜๋Š” ๋ถ€๋ถ„๋งŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

โœ…ย @Inject ๊ฐœ์„ 

๊ฐœ์„  ๋ชฉํ‘œ

์œ„์˜ ์ธ์ ํ„ฐ๋“ค์€ ์ฃผ์ž…ํ•œ๋‹ค๋Š” ์˜๋ฏธ์˜ ์ธ์ ํŠธ์™€ ๋‹ฌ๋ฆฌ, bean ํด๋ž˜์Šค๋“ค์— ๋Œ€ํ•œ ์ƒ์„ฑ๊ณผ ์ฃผ์ž…์„ ๋ชจ๋‘ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ BeanFactory๋Š” ๋‹จ์ง€ ์กฐํšŒ๋œ ํด๋ž˜์Šค ํ˜น์€ ๋นˆ์„ ์กฐํšŒํ•˜๋Š” ์—ญํ• ๋กœ๋ฐ–์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ์— ๊ฐœ์„ ์ด ํ•„์š”ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค!

์šฐ์„  ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.