J'ai développé une API Spring REST qui récupère les préférences d'appel d'un client à partir de la base de données (Postgres).Spring REST API: Retour Préférences par défaut
J'ai une classe pour CallPreferences comme ci-dessous.
public class CallPreferences {
private Boolean allowInternationalCalling;
private Boolean allowInternationalRoaming;
private List<DataOptions> dataOptions;
private AutoPayPrefences autoPayPreferences;
// getter and setters.
}
Toutes les préférences ci-dessus sont enregistrées dans une seule colonne dans un tableau. Une ligne de la table peut ressembler à ceci
Customer_Id | customer_preferneces
10112 | "preferences": {"allowInternationalCalling": false,
"allowInternationalRoaming": true,
"dataOptions": ["plan" : "4GLTE",
"data-limit" : "10GB" ],
"autoPay": {"payment-option" : "creditcard",
"payment-date": "2nd every month",
"reminder": "email"}
}
J'utilise mappeur de ligne pour cartographier les préférences dans la base de données à l'POJO
Quand il n'y a pas de préférences trouvées dans la base de données, je voudrais répondre à préférences par défaut comme ci-dessous.
"preferences": {
"allowInternationalCalling": true,
"allowInternationalRoaming": true,
"dataOptions": [],
"autoPay": {}
}
Je sais que nous pouvons simplement initialiser les valeurs dans le niveau de la classe ou si les préférences == null, je peux définir les valeurs par défaut pour chaque propriété. Mais se demandant s'il y a une meilleure façon de le faire en utilisant des fonctionnalités de printemps.
Que diriez-vous de surcharger les constructeurs? – jitsonfire