๋น(Bean)์ Spring์ด ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด์ ๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ง์ new ํค์๋๋ก ๋ง๋ค์ง ์๊ณ , ์คํ๋ง ์ปจํ
์ด๋(Spring Container)๊ฐ ์์์ ์์ฑํ๊ณ , ํ์ํ ๊ณณ์ ๋ฃ์ด์ฃผ๋ฉฐ, ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์์ฑ ์ฃผ์ฒด | ๊ฐ๋ฐ์๊ฐ ์๋ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์์ฑ |
| ๊ด๋ฆฌ ๋ฒ์ | ์์ฑ โ ์์กด์ฑ ์ฃผ์ โ ์ด๊ธฐํ โ ์ฌ์ฉ โ ์๋ฉธ |
| ๊ธฐ๋ณธ ์ด๋ฆ | ํด๋์ค๋ช
์ camelCase๋ก ๋ณํํ ์ด๋ฆ (ex: CoffeeMachine โ coffeeMachine) |
| ์ด๋ฆ ์ง์ | @Component("myBean")์ฒ๋ผ ์ด๋ฆ ์ง์ ๊ฐ๋ฅ |
| ์ด๋ฆ ์ถฉ๋ | ๊ฐ์ ์ด๋ฆ์ ๋น์ด 2๊ฐ ๋ฑ๋ก๋๋ฉด ์๋ฌ ๋ฐ์ |
| ํด๊ฒฐ ๋ฐฉ๋ฒ | @Primary๋ก ์ฐ์ ์์ ์ง์ or @Qualifier("beanName")์ผ๋ก ํน์ ๋น ์ง์ |
DI๋ ๋น์ ํ์๋ก ํ๋ ๊ณณ์ ์๋์ผ๋ก ์ฃผ์ ํด์ฃผ๋ ๊ธฐ์ ์ ๋๋ค.
์ง์ new CoffeeMachine()์ฒ๋ผ ๋ง๋ค ํ์ ์์ด, ์คํ๋ง์ด ๋์ ๋ง๋ค์ด์ ๋ฃ์ด์ค๋๋ค.
| ๋ฐฉ๋ฒ | ์ค๋ช | ์ฌ์ฉ ์์ |
|---|---|---|
| ํ๋ ์ฃผ์ | @Autowired๋ฅผ ํ๋์ ์ฌ์ฉ |
๊ฐ๋จํ์ง๋ง ํ ์คํธ ์ด๋ ค์ |
| ์์ฑ์ ์ฃผ์ | ์์ฑ์ ๋งค๊ฐ๋ณ์์ @Autowired |
๊ฐ์ฅ ์ถ์ฒ๋๋ ๋ฐฉ์ |
| Setter ์ฃผ์ | Setter ๋ฉ์๋์ @Autowired |
์ ํ์ ์ฃผ์ ์ ์ ํฉ |