๊ฐ์ฒด ๊ฐ€์ ธ์˜ค๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ๋น„๊ต

2023. 4. 20. 14:51ใ†Spring

๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ๊ฐ€์ ธ์˜ค๋Š” ์–ด๋…ธํ…Œ์ด์…˜ 2๊ฐœ

 

1. @Autowired : ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ์ค‘ ์ž๋ฃŒํ˜•์ด ์ผ์น˜ํ•˜๋Š” ๊ฒƒ๋งŒ ๋“ค๊ณ ์˜ด

์ž๋ฃŒํ˜•์ด ์ผ์น˜ํ•˜๋Š” ๊ฐ์ฒด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๊ฐ์ฒด์ธ์ง€ ๋ชป ์ฐพ์Œ

 

2. @Resource : name ์ฝ”๋“œ ์ž‘์„ฑํ•˜์—ฌ ์ผ์น˜ํ•˜๋Š” name์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ด.

interface Super {}

@Service("aaa")
class Aaa{} //์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ Aaa aaa = new Aaa();

@Service("bbb")
class Bbb implements Super {} //Bbb bbb = new Bbb();

@Service("ccc")
class Ccc implements Super {} //Ccc ccc = new Ccc();

//๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ๊ฐ€์ ธ์˜ค๋Š” ์–ด๋…ธํ…Œ์ด์…˜

@Autowired //๋งŒ๋“ค์–ด์ ธ์žˆ๋Š” ๊ฐ์ฒด ์ค‘ ์ž๋ฃŒํ˜•์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ๋งŒ ๋“ค๊ณ ์˜ด
private Aaa aaa; 
private Super super; //์˜ค๋ฅ˜ ์ผ์น˜ํ•˜๋Š” ์ž๋ฃŒํ˜• 2๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ccc, bbb

@Resource(name = "bbb") //bbb๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋“ค๊ณ ์˜ด
private Super super;