๐Ÿถ๐Ÿพ/backend

[spring] ์ปดํฌ๋„ŒํŠธ ์Šค์บ”

onieyh 2023. 11. 14. 21:37

์Šคํ”„๋ง ๋นˆ์ด ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ๊ฐœ๊ฐ€ ๋  ๊ฒฝ์šฐ ์„ค์ • ์ •๋ณด(Appconfig)์— ์ผ์ผ์ด ๋“ฑ๋กํ•˜๊ธฐ ๊ท€์ฐฎ์•„์ง€๋Š” ๋ฌธ์ œ๋•Œ๋ฌธ์— 

์Šคํ”„๋ง์—์„œ๋Š” ์„ค์ • ์ •๋ณด๊ฐ€ ์—†์–ด๋„ ์ž๋™์œผ๋กœ ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค !

๊ทธ๋ฆฌ๊ณ  ์˜์กด๊ด€๊ณ„๋„ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜๋Š” @Autowired๋ผ๋Š” ๊ธฐ๋Šฅ ๋˜ํ•œ ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•œ๋‹ค. 

 

 

 

์ปดํฌ๋„ŒํŠธ ์Šค์บ” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

@Configuration
@ComponentScan
public class Appconfig {}

 

@ComponentScan์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด๊ณผ๋‹ค๋ฅด๊ฒŒ @Bean์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•˜์ง€ ์•Š๊ณ  

์Šค์บ”์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ํด๋ž˜์Šค์— @Component๋งŒ ๋ถ™์—ฌ์ค€ ๋’ค, ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…์ด ํ•„์š”ํ•œ ๊ณณ์—๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด

์Šคํ”„๋ง์€ ์ž๋™์œผ๋กœ ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•ด์ค€๋‹ค

 

@ComponentScan์€ @Component๊ฐ€ ๋ถ™์€ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๋Š”๋ฐ, 

๊ธฐ๋ณธ ์ด๋ฆ„์€ ํด๋ž˜์Šค๋ช…์— ์•ž๊ธ€์ž๋งŒ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ” ๋“ฑ๋กํ•œ๋‹ค MemberServiceImpl โžก๏ธ memberServiceImpl (๋นˆ ์ด๋ฆ„)

์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” @Component("์ง€์ •ํ•˜๊ณ ์‹ถ์€ ์ด๋ฆ„") ์„ ์‚ฌ์šฉํ•œ๋‹ค 

 

 

 

 

ํƒ์ƒ‰ ์œ„์น˜

 

๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ํŒจํ‚ค์ง€์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ( @ComponentScan(basePackages = "ํŒจํ‚ค์ง€๋ช…") )๋„ ์žˆ์ง€๋งŒ

์ฃผ๋กœ ์„ค์ • ์ •๋ณด ํด๋ž˜์Šค(AppConfig)์˜ ์œ„์น˜๋ฅผ ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ์— ๋‘๊ณ  @ComponentScan ์„ ๋ถ™์ธ ๋’ค

basePackages ์ง€์ •์„ ์ƒ๋žตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถŒ์žฅํ•œ๋‹ค๊ณ ํ•œ๋‹ค  !

 

ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ

com.hello โžก๏ธ ์—ฌ๊ธฐ์— ์„ค์ •์ •๋ณด ํด๋ž˜์Šค๋ฅผ ๋‘๊ณ  @ComponentScan

com.hello.service

com.hello.repository

 

 

 

 

๋ฐ˜์‘ํ˜•