๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Spring/Spring Internal2

Spring @ComponentScan ๋™์ž‘ ๊ณผ์ • Spring์—์„œ ํด๋ž˜์Šค์— @Configuration, @RestController, @Service ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ ์–ธํ•˜๋ฉด ์Šคํ”„๋ง์€ ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜๋“ค์„ ์Šค์บ”ํ•ด์„œ ๋นˆ์œผ๋กœ ๋“ฑ๋ก์„ ํ•ด์ฃผ๋Š”๋ฐ์š”, ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด @ComponentScan ์–ด๋…ธํ…Œ์ด์…˜ ์ž…๋‹ˆ๋‹ค. @ComponentScan ์€ ๋‹จ์–ด ๊ทธ๋Œ€๋กœ @Component ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํด๋ž˜์Šค๋“ค์„ ์Šค์บ”ํ•˜์—ฌ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๋Š”๋ฐ, ์œ„์— ์–ธ๊ธ‰๋œ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์€ ๋ชจ๋‘ ๋‚ด๋ถ€์— @Component ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์„ ์„ค์ •ํ•˜๋ฉด ์Šคํ”„๋ง์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์Šค์บ”ํ•˜๊ณ , ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. @ComponentScan ComponentScan ์–ด๋…ธํ…Œ์ด์…˜์— ์กด์žฌํ•˜๋Š” ์ฃผ์„์œผ๋กœ, ๋Œ€๋žต์ ์ธ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.. 2023. 12. 9.
Spring Bean ์ด ๋“ฑ๋ก๋˜๋Š” ๊ณผ์ • ์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด @Configuration, @Component, @Bean ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š”๋ฐ์š”, ์–ด๋– ํ•œ ๊ณผ์ •์„ ํ†ตํ•ด Bean ์ด ๋“ฑ๋ก๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์œ„์™€ ๊ฐ™์ด @Configuration ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ค์ •ํ•œ TestConfiguration ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๊ณ , main ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ Main ํด๋ž˜์Šค์—์„œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ AnnotationConfigApplicationContext ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด ์ƒ์„ฑ์ž์—๋Š” TestConfiguration ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ณผ์ •์„ ํ†ตํ•ด ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ Spring Bean ์ด ๋“ฑ๋ก๋˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. BeanFactory BeanFactory ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์Šคํ”„๋ง .. 2023. 12. 2.
๋ฐ˜์‘ํ˜•