2014-12-22 4 views
1

this WildFly Java EE 자습서를 따르고 있습니다.이유 대신 int

@Inject 
@MaxNumber 
private int maxNumber; 

@Inject 
@Random 
Instance<Integer> randomNumber; 

int가 주입 된 maxNumber 경우와 randomNumber 경우 Instance<Integer>에 있습니다

나는 다음과 같은 코드에 대한 질문이?

int randomNumber을 사용하여 코드를 테스트했으며 작동하는 것 같습니다. Instance javadoc 기준

답변

0

:

특정 상황에서, 주입은 콘텐츠 레퍼런스를 획득 하는 가장 편리한 방법은 아니다.

  • 콩 유형 또는 한정어 런타임에 동적으로 변화, 또는 전개에 따라
  • 가 존재 형태와 규정을 만족하는 콩 수 없거나
  • 있다 : 예를 들어, 결과, 사용되지 않을 수도
  • 특정 유형의 모든 빈을 반복하고 싶습니다. 빈이 @Random으로 표시된 그렇다면

다음 값 전개 시간은 의존하고 Instance 래핑되어야한다. Instance은 일반형이기 때문에 객체 유형 Integer 프리미티브가 아닌 int이 필요합니다.

+0

배포 시간에 따라 달라지는 값을 설명 할 수 있습니까? 나는 javadoc을 읽었지 만 그 부분은 이해할 수 없다. –

+0

정확하지 않았습니다. 만약 object (type)이 CDI가 아닌 패키지 ('bean.xml'을 포함하지 않음)에서 나온다면 bean 발견 프로세스를 트리거하지 않을 것입니다. 따라서 객체를 생성하는'Producer'가 필요합니다 (조건 2 - 시작할 때 bean을 결정할 수 없습니다). 또한 런타임에 다양하기 때문에 (무작위입니다) '인스턴스'여야합니다. –

관련 문제