11

:Bahar @value TypeMismatchException: türünün değerini gerekli türüne 'java.lang.String' dönüştürülemedi 'java.lang.Double' ı gibi bir çift özellik enjekte etmek @value ek açıklama kullanmak istiyorum

@Service 
public class MyService { 

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

// ... 
ve Bahar mülkiyet yer tutucu kullanılarak (Özellikler dosyaları):

item.priceFactor=0.1 

Ben İstisna olsun:

org.springframework.beans.TypeMismatchExce ption: 'java.lang.String' türünde 'java.lang.Double' türünde değerini döndüremedi; Giriş dizesi için: iç içe özel java.lang.NumberFormatException olduğunu "$ {item.priceFactor}"

bir özellikleri dosya gelen bir çift değer kullanmak için bir yolu var mı?

+0

aşağıdaki satırı

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

değiştirmeyi deneyin çözmek gerekir? –

+0

@AmiHollander bile ilkel tip çift – guilhebl

cevap

8

`double` çalışır

@Value("#{new Double('${item.priceFactor}')}") 
+1

bir milyon fiyat cevabı, çok nadir ve birçok yerde kullanılamaz için başarısız olur – ArifMustafa

+0

Bahar önyükleme 1.5.9 üzerinde bir çekicilik gibi çalışır – realPK

0

Dize saklama ve tam sayılar ve çiftler gibi sayılara dönüştürücüler ve ayarlayıcılar aracılığıyla nasıl dönüştürülür? Java enjeksiyonu ile güvenli kod için her zaman alıcılar ve ayarlayıcıları kullanmalı ve sadece diğer yöntemlerde kullanmalısınız. Ben java güvenliği hakkında okumak için sıcak bir şekilde tavsiyem (Bu hackerlar için değil), ama kod kullanımı ve aynı şekilde yüklediğiniz bir tane, enjeksiyon kullanıyor.

1

Bu sorun-

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