blueprint.xml
में, मैं एक वैकल्पिक निर्भरता इस तरह की घोषणा:खाका: एक वैकल्पिक निर्भरता संतुष्ट है अगर मैं कैसे की जाँच करते हैं?
<reference id="RepositoryListener"
interface="ru.focusmedia.odp.server.datastore.api.RepositoryListener"
availability="optional" />
<bean id="Repository"
class="ru.focusmedia.odp.server.datastore.jpa.repository.RepositoryImpl">
<jpa:context property="entityManager" unitname="ODP_Server" />
<tx:transaction method="*" value="Required" />
<property name="repositoryListener" ref="RepositoryListener" />
</bean>
और RepositoryImpl
में, मैं
public void setRepositoryListener(RepositoryListener repositoryListener) {
logger.info("Repository listener set");
this.repositoryListener = repositoryListener;
}
है इस विधि खाका द्वारा कहा जाता है, तब भी जब कोई RepositoryListener
सेवा उपलब्ध है के रूप में उम्मीद । समस्या मैं कैसे बाद में जांच कर सकते हैं कि क्या वहाँ एक सेवा है, है?
if (repositoryListener != null) {
repositoryListener.notifyDelete(node);
} else {
logger.warn("No repository listener set!");
}
काम नहीं करता है, के बाद से repositoryListener
null
नहीं है, लेकिन एक खाका प्रॉक्सी।
मेरे हिस्से पर सीमित ज्ञान, लेकिन कुछ संदर्भ है जिसे <संदर्भ-श्रोता> कहा जाता है जिसे के लिए निर्दिष्ट किया जा सकता है और शायद आपके 'रिपोजिटरी' बीन से जोड़ा जा सकता है। –