Ich möchte das folgende Problem lösen. Ich arbeite an einem Frühlingsprojekt, bei dem ich eine Spring Bean Konfigurationsklasse habe.Spring mehrere Autowire Kandidaten
Nachdem ich nach einem der Kunden aus dem Container gefragt habe, kehrt er mit einem Kunden mit UnterstrichNameFormatter zurück.
Ich habe versucht, dies zu debuggen, und festgestellt, dass Frühling customer.setFormatter nur einmal während App-Start und der Ursprung ist meine Konfigurationsklasse, so dass das OK aussieht, aber am Ende, wenn ich meine Bohne von der CTX zurück .getBean-Methode Der Formatierer ist in jedem Fall der UnterstrichNameFormatter.
So ist es sogar möglich, den injizierten Wert zu überschreiben?
Hinweis: Mit XML-Konfigurations es möglich ist, diesen
<bean class="package.Customer">
<property name="formatter">
<bean class="package.HashmarkNameFormatter" />
</property>
</bean>
Ich glaube nicht, wäre dies der Grund sein. Wenn ich mit dem Debugging auf die Zeile 'return c;' stoppe und das Objekt inspiziere, ist der 'hashmarkNameFormatter' bereits gesetzt. Irgendein Mechanismus der Feder ersetzt es irgendwo später zu "UnterstreichenNameFormatter", aber nicht über 'setFormatter'-Methode, da es keinen weiteren Aufruf darauf gibt. Ich habe Ihre Lösung trotzdem versucht, aber nicht funktioniert. Das gleiche passiert, das Formatierungsfeld der Kundenobjekte referenziert auf ein 'UnderscoreNameFormatter'-Objekt. – Joooe