@Qualifiler("mainDiscountPolicy") 이렇게 문자를 적으면 컴파일시 타입 체크가 안된다. 다음과 같은 어노테이션을 만들어서 문제를 해결할 수있다.
package hello.core.annotaion;
import org.springframework.beans.factory.annotation.Qualifier;
import java.lang.annotaion.*;
@Target({ElmentType.FIELD,ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE,
ElementType.ANNOTATION.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier("mainDiscountPolicy")
public @Interface MainDiscountPolicy{}
@Component
@MainDiscountPolicy
public class RateDiscountPolicy implements DiscountPolicy{}
@Autowired
public OrderServiceImpl(MemberRepository memeberRepository,
@MainDiscountPolicy DiscountPlicy discountPolicy{
this.memberRepostiory = memberRepositoyr;
this.discountPolicy = discountPolicy;
}
'Spring' 카테고리의 다른 글
Spring DataSource 두개 사용하기(Abstract) (0) | 2022.10.13 |
---|---|
BindingResult (0) | 2022.01.23 |
조회 빈이 2개이상일 경우(@Qualifier,@Primary) (0) | 2021.11.12 |
롬북 (0) | 2021.11.10 |
생성자 주입 선택 (0) | 2021.11.10 |