<property /> 와 <constructor-arg /> 에서 DI를 할 때 다른 bean을 참조 한다면 idref 를 사용할 수 있습니다.

<bean id="theTargetBean" class="..."/>

<bean id="theClientBean" class="...">
    <property name="targetName">
        <idref bean="theTargetBean" />
    </property>
</bean>

이건 아래의 것과 같습니다.

<bean id="theTargetBean" class="..."/>

<bean id="client" class="...">
    <property name="targetName">
        <value>theTargetBean</value>
    </property>
</bean>

차이점
1. idref를 사용하면 참조하는 이름의 bean이 실제 존재하는지 배포 시에 검증하게 됩니다.
2. 참조
하는 bean이 같은 파일 안에 정의 되어 있을 때 <idref local="빈이름" />형태로 쓸 수 있는데 이렇게
쓰면 XML 파싱 할 때 XML 검증을 통해 설정에 문제가 있을 때 에러를 발견할 수 있습니다.