Samstag, Februar 22, 2020

Spring @Wert TypeMismatchException:Fehler beim konvertieren Wert vom Typ ‚java.lang.String‘ , required Typ “ java.lang.Doppel -‚

Möchte ich die @Value-annotation zu injizieren einer Double-Eigenschaft wie:

@Service
public class MyService {

    @Value("${item.priceFactor}")
    private Double priceFactor = 0.1;

//...

und mit Spring-Eigenschaft Platzhalter (Properties-Dateien):

item.priceFactor=0.1

Bekomme ich Exception:

org.springframework.Bohnen.TypeMismatchException: Fehler beim konvertieren
Wert vom Typ ‚java.lang.String‘ , required Typ “ java.lang.Doppel -‚;
nested exception is java.lang.NumberFormatException: For input string:
„${Element.priceFactor}“

Gibt es einen Weg, um einen Double-Wert aus einer properties-Datei?

ist double funktioniert?
es schlägt fehl, selbst für die primitiven Typ double

InformationsquelleAutor guilhebl | 2017-03-11

3 Kommentare

  1. 25

    Versuchen, ändern die folgende Zeile

    @Value("${item.priceFactor}")

    zu

    @Value("#{new Double('${item.priceFactor}')}")
    eine million Preis Antwort, sehr selten und nicht in vielen Orten
    Funktioniert wie einen Charme für den Frühling-boot-1.5.9

    InformationsquelleAutor bcr666

  2. 3

    Dieser sollte das problem lösen-

    @Value("#{new Double.parseDouble('${item.priceFactor}')}")
    private Double priceFactor;

    InformationsquelleAutor pkoli

  3. 0

    Wie etwa die Speicherung von einem String und Umwandlung in zahlen wie ganze zahlen und verdoppelt durch Getter und setter? Für den safe-code mit Java-Injektion sollten Sie immer Getter und setter und nur für andere Methoden in jedem Fall. Ich beraten Sie sehr herzlich zu Lesen über die java-Sicherheit (Das ist NICHT für Hacker), aber mehr für die code-Nutzung und schreiben ebenfalls die, die Sie hochgeladen, die Injektion verwendet.

    InformationsquelleAutor Vitali Pom

Kostenlose Online-Tests