2016-12-28 2 views

Répondre

1

Vous ne pouvez pas avoir un tel convertisseur générique appliqué sur une base de propriété à propriété. Vous pouvez enregistrer un convertisseur de String à Long, mais il sera appelé pour chaque cas (toute propriété de type Long fondamentalement).

Le but de @ConfigurationProperties est de mapper le Environment à une structure de données de plus haut niveau. Peut-être pourriez-vous faire cela?

@ConfigurationProperties(prefix="myconfig") 
public class StorageServiceProperties { 
    private String defaultSize; 
    // getters and setters 

    public Long determineDefaultSizeInBytes() { 
     // parsing logic 
    } 

} 

Si vous regardez le soutien multipart au printemps Boot, nous keep the String value and we use the @ConfigurationProperties object de créer une MultipartConfigElement qui est responsable de l'analyse syntaxique. De cette façon, vous pouvez spécifier ces valeurs spéciales dans le code et la configuration.

-1
public void setDefaultSize(String defaultSize) { 
    try { 
    this.defaultSize = Long.valueOf(defaultSize); 
    } catch (NumberFormatException e) { 
    // handle the exception however you like 
    } 
}