์คํ๋ง ๋น์ด ์์ญ, ์๋ฐฑ๊ฐ๊ฐ ๋ ๊ฒฝ์ฐ ์ค์ ์ ๋ณด(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