Je souhaite utiliser l'annotation @Value pour injecter une propriété Double telle que:
@Service
public class MyService {
@Value("${item.priceFactor}")
private Double priceFactor = 0.1;
// ...
et en utilisant un espace réservé de propriété Spring (fichiers de propriétés):
item.priceFactor=0.1
Je reçois une exception:
org.springframework.beans.TypeMismatchException: Impossible de convertir la valeur de type 'Java.lang.String' en type requis 'Java.lang.Double'; L'exception imbriquée est Java.lang.NumberFormatException: pour la chaîne de saisie: "$ {item.priceFactor}"
Est-il possible d'utiliser une valeur Double provenant d'un fichier de propriétés?
Essayez de changer la ligne suivante
@Value("${item.priceFactor}")
à
@Value("#{new Double('${item.priceFactor}')}")
Cela devrait résoudre le problème-
@Value("#{new Double.parseDouble('${item.priceFactor}')}")
private Double priceFactor;