나는 다음과 같은 코드를 사용하고 있습니다 :CDI @Produces와의 모호한 종속성 - 왜?
public Configuration {
private boolean isBatmanCar = someMethod(...);
@Produces
public Car getCar(@New Car car) {
if(isBatmanCar) {
car.setName("BatmanCar");
}
return car;
}
}
public Car {
private String name = "NormalCar";
public void setName(String name) {
this.name = name;
}
}
public Demo {
@Inject
Car car;
// rest of code
}
나는 내가 아는
AmbiguousResolutionException: WELD-001318 Cannot resolve an ambiguous dependency between (...) Car with qualifiers [@Any @Default] (...) Producer Method [Car] with qualifiers [@Any @Default]
@Alternative
를 추가 할 때 그것은 효과가 있지만, 이것이 올바른 방법인지 궁금하다. 왜 그것을해야만 하는가?
그런 경우 @Produces의 올바른 사용법을 알려주실 수 있습니까?
나는 자바 EE 6, CDI 1.0, EJB 3.1, 글래스 피시 3.2
@Alternative를 사용하는 좋은 방법은 무엇입니까? – dmydlarz
@Alternative는 동일한 빈 (유형)에 대해 다른 버전을 제안하고 구성 파일의 구성별로 활성화 할 수있게합니다. dev/test와 production에서 다른 벤을 사용하는 경우에 유용 할 수 있습니다. 예를 들어 beans.xml 파일에서만 변경할 수 있습니다. –