11

@Value注釈を使用してDoubleプロパティを挿入したいと考えています:Spring @Value TypeMismatchException:型 'java.lang.String'の値を必要な型 'java.lang.Double'に変換できません

@Service 
public class MyService { 

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

// ... 

とSpringプロパティのプレースホルダ(プロパティファイル)を使用して:

org.springframework.beans.TypeMismatchExce:

item.priceFactor=0.1 

を、私は例外を取得ption: 型 'java.lang.String'の値を必須型 'java.lang.Double'に変換できませんでした。入力文字列の場合: ネストされた例外はjava.lang.NumberFormatExceptionある 「$ {item.priceFactor}」

は、プロパティファイルからDouble値を使用する方法はありますか?

+0

に次の行

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

を変更してみてくださいは 'double'作品で解決する必要がありますか? –

+0

@AmiHollanderプリミティブ型doubleの場合でも失敗します – guilhebl

答えて

8

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

非常にまれであり、多くの場所で利用可能ではありません – ArifMustafa

+0

Springブート1.5.9の魅力のように動作します – realPK

0

文字列を格納して、ゲッターやセッターを介して整数や倍数に変換するのはどうですか? Javaインジェクションを使用して安全なコードを作成するには、ゲッターとセッターを使用する必要があります。私はあなたにJavaセキュリティ(ハッカーのためのものではない)について熱心にお伝えしますが、コードの使用法や、あなたがアップロードしたものと同じように書くことについては、注射を使用します。

1

これはproblem-

@Value("#{new Double.parseDouble('${item.priceFactor}')}") 
private Double priceFactor; 
関連する問題