Mein spezifisches Problem ist, dass ich zwei Beans konfiguriert habe, die dieselbe Schnittstelle implementieren, und ich habe eine dritte Bean, die eine Eigenschaft vom Typ dieser Schnittstelle hat. Ich injiziere die Eigenschaft über eine Config-Eigenschaft. Angenommen, RemoteDataSource und LocalDataSource implementieren IDataSource und dao1 hat eine Eigenschaft vom Typ IDataSource, dann könnte meine XML-Konfiguration wie folgt aussehen:
<bean id="datasource1" class="com.foo.RemoteDataSource">
<property name="url">${url}</property>
</bean>
<bean id="datasource2" class="com.foo.LocalDataSource">
<property name="path">${filepath}</property>
</bean>
<bean id="dao1" class="com.foo.MyDAO">
<property name="dataSource">${datasource}</property>
</bean>
Die URL, der Dateipfad und die Datenquelle werden in einer integrierten Eigenschaftsdatei definiert. Wir machen jetzt einen Vorstoß für annotationsgesteuerte Konfiguration und ich bin nicht sicher, wie ich mein Dao annotieren kann, um die Datenquelle in der Eigenschaftsdatei zu konfigurieren. Ich möchte so etwas tun, aber es ist offensichtlich nicht erlaubt:
@Autowired
@Qualifier("${datasource}")
public void setDataSource(IDataSource datasource) {...}
NB: Dies ist der Frühling 3