@Autowired
Spring Framework๋ฅผ ์ฌ์ฉํ ๋ JavaConfig๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ์๋์ ๊ฐ์ด @Configuration ์ ๋
ธํ
์ด์
์ผ๋ก ํ๊น
๋ ํด๋์ค์, @Bean ์ ๋
ธํ
์ด์
์ ์ฌ์ฉํด์ ์คํ๋ง ๋น์ ์ ์ํ ๊ฒ์
๋๋ค. @Configuration public class BeanConfigurationClass { @Bean public SomeBeanType someBeanName() { return new SomeBean(); } } ํน์ ์คํ๋ง ๋น์ ์ ์ธํ ๋, ์๋์ ๊ฐ์ด ํด๋์ค์๋ค๊ฐ ์ปดํฌ๋ํธ๋ก ์ ์ธํ ๋๋ ์์ต๋๋ค. @Component public class SomeComponentClass { // ... } ๊ทธ๋ฌ๋ฉด ์ด์ , ์์์ ์ ์ธํ๋ SomeBeanType, SomeComponentClass ํ์
์ ์คํ๋ง ๋น์ ์ฐธ์กฐํด์ ์ฌ์ฉํ๊ณ ์ถ์ ์ปดํฌ๋ํธ๊ฐ ์์ ๊ฒ์
๋๋ค. ์คํ๋ง ํ๋ ์์ํฌ์ ์์กด์ฑ ์ฃผ์
(Dependency Injection)์ ์ด์ฉํ ๋ @Autowired๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. @Component public class ๋น์๊ฐ์ ธ๋ค์ฐ๊ณ ์ถ์์ปดํฌ๋ํธํด๋์ค { @Autowired private SomeBeanType someBeanType; @Autowired private SomeComponentClass someComponentClass; } ์ด๋ ๊ฒ ํ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋ ๋, ์คํ๋ง ์ปจํ
์ด๋๊ฐ @Autowired ์ ๋
ธํ
์ด์
์ด ๋ถ์ ํ๋์ ๋น์ ์ฃผ์
ํด์ค๋๋ค. ์ด๋ @Autowired๋ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ๊ฐ๊ณ ์๋ ์คํ๋ง ๋น ๋ชฉ๋ก ์ค์์ "ํ์
์ด ๊ฐ์" ๋น์ ์ฐพ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์
์ ํตํ์ด SomeBeanType, SomeComponentClass๊ฐ ์ ์ผํ๊ฒ ์ ์๋์ด ์์ด์ผ ํฉ๋๋ค. ๋ง์ฝ ์ค๋ณต ์ ์๋๋ฉด, ์ด๋ค ๋น์ ์ฃผ์
ํ ์ง ๋ชฐ๋ผ์ ์๋ฌ๊ฐ ๋ฉ๋๋ค. ๋ง์ฝ ๊ฐ์ ํ์
์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋น์ ์ ์ธํ๋ ค๋ฉด, ๋น ์ ์ ๊ฐ๊ฐ์ ์ด๋ฆ์ ๋ถ์ฌ์ฃผ๊ณ , @Autowired ํ ๋ ์ด๋ฆ์ ๊ฐ์ด ์ ์ด์ค์ผ ํฉ๋๋ค.