ich habe:Erweiterte Frühling @Qualifier
@Component
class MyDecorator{
private Cache cache;
/*
some wrapped methods like get put remove
*/
}
Ist es möglich, MyDecorator
an verschiedenen Orten mit unterschiedlichen Cache autowire?
kann ich XML wie folgt konfiguriert werden:
<bean id="id1" class="MyDecorator ">
<property name="cache" value="Cache1" />
</bean>
<bean id="id2" class="MyDecorator ">
<property name="cache" value="Cache2" />
</bean>
Aber gibt es ohne Zusatz von xml configs, nur mehr Eleganz Art und Weise mit Anmerkung?
Korrekter Code sollte
@Configuration
public class AppConfig {
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache1);
}
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache2);
}}
nach specs werden zwei Bohnen adaptedCache1 und adaptedCache2 erzeugt werden und jetzt kann ich autowire diese Bohnen mit Qualifier adaptedCache1 und adaptedCache2
wie verstehen, falls oben Ich habe MyDecorator Cache zu verlängern hat Ich bin mir nicht sicher, ob es sinnvoll ist – Diyko
@Diyko: urse in diesem Fall
MyDecorator
nicht@Component
braucht ist das nicht, wie * Decorator * Muster funktioniert? Es erweitert/implementiert die gleiche Schnittstelle wie das umschlossene Objekt? Sonst ist es ein * Adapter * ... –scheint ich habe, was du meinst – Diyko