๐Ÿ๏ธ Spring/๊ธฐ๋ณธ

[Spring] @Qualifier ๋Œ€์‹  ์–ด๋…ธํ…Œ์ด์…˜์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด์ž

๋ง ๋ž‘ 2021. 12. 11. 02:54
728x90

 

 

 

@Qualifier์˜ ๋ฌธ์ œ์ 

@Qualifier("mainDiscountPolicy") ์ฒ˜๋Ÿผ, ๋ฌธ์ž๋ฅผ ์ง์ ‘ ์ ์–ด์ฃผ๋Š” ๋ฐฉ์‹์€ ์ปดํŒŒ์ผ ์‹œ์ ์— ์ฒดํฌ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋…ธํ…Œ์ด์…˜์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

 

 

 

์–ด๋…ธํ…Œ์ด์…˜ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–ด๋…ธํ…Œ์ด์…˜ ์† @Qualifier๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์–ด๋…ธํ…Œ์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER,ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {
}

 

 

 

 

์ด๋Š” ๊ธฐ๋ณธ @Qualifier๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Component
@MainDiscountPolicy
public class RateDiscountPolicy implements DiscountPolicy {}
@Autowired
public OrderServiceImpl( @MainDiscountPolicy DiscountPolicy discountPolicy) {
	this.memberRepository = memberRepository;
	this.discountPolicy = discountPolicy;
}

 

 

 

 

 

 

 

 

 

 

 

๐Ÿ“” Reference

 

์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์Šคํ”„๋ง ์ž…๋ฌธ์ž๊ฐ€ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์Šคํ”„๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ™•์‹คํžˆ ๋‹ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์„ธ์š”! ๐Ÿ“ข ์ˆ˜๊ฐ• ์ „

www.inflearn.com

 

728x90