Verwenden von Spring mvc-3. Ich schreibe einen benutzerdefinierten Konverter, der Zugriff auf andere Konverter benötigt, die in einem ConversionService registriert sind.
Wie kann ich das erreichen? Ich habe versucht, meinen benutzerdefinierten Konverter wie folgt zu schreiben:
%Vor%Und ich habe meinen benutzerdefinierten Konverter über applicationContext.xml registriert
%Vor%Spring weigert sich jedoch, Service in meinen CustomConverter zu injizieren (es ist immer Null). Wie kann ich das erreichen?
Danke!
Ich habe kürzlich so etwas verwendet, um dieses Problem zu lösen. Verwenden Sie eine benutzerdefinierte Factory:
%Vor%was wie folgt erklärt wird:
%Vor% Ich bin auf dasselbe Problem gestoßen. Es gibt ein Problem SPR-6415 in Spring JIRA, das dieses Problem behandelt. Ich gebe hier meine Lösung basierend auf der Diskussion in dieser Ausgabe. Es ist das gleiche Prinzip wie die Antwort von @nmervaillie, aber Sie müssen nicht Ihr eigenes ConversionServiceFactoryBean
implementieren.
Hauptproblem (das ich gesehen habe) ist, wenn Sie ConversionServiceFactoryBean
für den Aufbau von conversion service
verwenden, das Konverter enthält, die conversion service
verwenden, und Sie erhalten einen Fehler wegen ConversionServiceFactoryBean.getObject
Methode, die eine Instanz von% liefert co_de% wird vor conversion service
aufgerufen, wenn diese Konvertierungsserviceinstanz tatsächlich erstellt wurde.
Also Um dieses Verhalten zu vermeiden müssen Sie nur erstellen, um ConversionServiceFactoryBean.afterPropertiesSet
vor conversion service
heißt zu erstellen. Ich habe es im Konstruktor der Klasse gemacht, die ConversionServiceFactoryBean.getObject
erweitert.
Beispiel:
Dann können Sie Konverter verwenden, die auch ConversionServiceFactoryBean
verwenden.
Hoffe es hilft.
Ich habe dieses Problem in der zentrischen Anwendung im Frühjahr gelöst. Die Hauptkomponenten dieser Lösungen sind:
SampleConverter
%Vor%und die Konfiguration:
%Vor%...
Die @Lazy-Annotationen umgehen das Egg-Chicken-Problem, indem sie einen Proxy injizieren und so die Auflösung der Konvertierungsservice-Bean verzögern, bis sie wirklich genutzt wird.
Tags und Links java spring spring-mvc