Ich habe einen benutzerdefinierten Formatierer @Component class DebitCardNumberFormatter implements Formatter<DebitCardNumber>{...}
ich hinzugefügt haben, diese Formatierer zum FormattingConversionServiceFactoryBean
vonBenutzerdefinierte Formatierer nicht registriert - ConversionNotSupportedException: Frühling
<bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="formatters">
<set>
<ref bean="debitCardNumberFormatter"/>
</set>
</property>
</bean>
Nun, wenn ich den folgenden Code explizit ausgeführt, es funktioniert einwandfrei und die Zeichenfolge wird DebitCardNumber
,DebitCardNumber debitCardNumber=formattingConversionService.convert("1234-3242
-4533-3432",DebitCardNumber.class);
Aber wenn ich versuche, eine DebitCardNumber in einer anderen Bohne mit einem String-Wert zu injizieren,
<bean id="cardDetails" class="com.amudhan.springcore.formatter.CardDetails">
<property name="debitCardNumber" value="1234-3242-4533-3432"></property>
</bean>
Der Container löst ConversionNotSupportedException aus.
org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type [java.lang.String] to required type [com.amudhan.springcore.formatter.DebitCardNumber] for property 'debitCardNumber'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.amudhan.springcore.formatter.DebitCardNumber] for property 'debitCardNumber': no matching editors or conversion strategy found`enter code here`
- Ich lese die Frühlings-Dokumentation und die APIs zu üben. Was fehlt mir hier ?
- Zuvor, als ich 'Converter' erstellt habe, habe ich 'converters' Eigenschaft von
ConversionServiceFactoryBean
verwendet, um diesen Konverter hinzuzufügen und ihn automatisch zu verwenden. - In der gleichen Weise habe ich versucht, den Formatierer mit der 'Formatierer' Eigenschaft
FormattingConversionServiceFactoryBean
hinzuzufügen. Ist da etwas, was ich grundsätzlich vermisse? Oder ist mein Verständnis von Formattern einfach falsch? - Wenn es eine Ausnahme auslöst, wenn ich Spring zu debugCardNumber es im ApplicationContext verwende, wie funktioniert es richtig, wenn ich die Konvertierungsmethode explizit aus der App aufrufen? Sogar die Bohnen werden korrekt erstellt, wenn ich nachschlage.
Ja. Aber warum funktioniert es nicht so, wie ich es gemacht habe, als die Konverter gut funktionierten? Fehle ich etwas? –
Können Sie ein Arbeitsbeispiel hinzufügen? – Veeram
Alles gleich wie in der oben angegebenen XML-Konfiguration, außer dass ich jetzt "ConversionServiceFactoryBean" anstelle von "FormattingConversionServiceFactoryBean" mit der Eigenschaft converters anstelle der formatter -Eigenschaft habe. Ich habe einen benutzerdefinierten Konverter anstelle eines Formatierers wie in der Frage erwähnt injiziert. –