idref
은 빈의 ID (즉, 문자열 값이지만 참조는 아님)를 전달하는 데 사용된다는 것을 알고 있습니다. 인터뷰에서 묻는 질문은 idref
의 유스 케이스가 될 수 있습니까? 언제, 왜 사용해야합니까?Spring 빈 idref의 유스 케이스는 무엇입니까?
0
A
답변
1
idref
은 배포시 참조 된 명명 된 Bean이 실제로 존재하는지 확인하여 보안 계층을 추가하기 만하면됩니다.
A very nice example with appropriate explanation is provided in this link
예
<bean id="abc" class="..."/>
<bean id="xyz" class="...">
<property name="abcName">
<idref bean="abc" />
</property>
</bean>
도
<bean id="abc" class="..." />
<bean id="xyz" class="...">
<property name="abcName" value="abc" />
</bean>
첫 번째 방법을 사용하는 이점은 이미 설명한 바와 같이 기록 될 수있다.
두 번째 방법을 사용하는 경우 xyz
bean의 abcName
속성에 전달 된 값에 대한 유효성 검사가 수행되지 않습니다. 즉, 컨텍스트를로드하는 중입니다.
오류는 xyz
bean이 인스턴스화 될 때만 발견됩니다. 따라서 인스턴스화 단계에서 개발자가 오타가 주입되었는지 여부는 알 수 없습니다.
참고 :그것은 단지 권장되는 방법이 아닌 필수 접근
좋아, 그런데 왜 & 우리가 IDREF를 사용해야 할 때입니까? – dosdebug
@ItachiUchiha가이 답변의 첫 번째 줄에 설명했듯이, 명명 된 bean이 삽입되기 전에 존재하는지 확인하고자 할 때마다 설명합니다. – Steve
단지 유효성 확인 이외의 무엇입니까? 유효성 검사를위한 것이라는 것을 압니다. – dosdebug