Printemps @Valeur de la liste est vide par défaut
Est-il un moyen de définir une liste vide comme valeur par défaut d'une propriété au Printemps, quelque chose comme:
@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;
Évidemment pas new ArrayList, mais j'ai besoin d'une liste vide.
Est
private List<String> myList = new ArrayList<>()
pas assez?OriginalL'auteur Roby Rodriguez | 2017-03-21
Vous devez vous connecter pour publier un commentaire.
Après avoir pris un coup d'oeil à SpEL spécification et combiné avec @javaguy réponse je suis venu avec cette:
votre réponse est utile mais incomplète, puisque la valeur de l'annotation des points à une propriété en premier lieu (ce qui doit être initialisée lorsqu'il n'est pas présent - dans le cas contraire, elle conduit à une IllegalArgumentException)
Je l'ai utilisé que pour le zéro de la taille d'
list
dans mon projet et n'a pas obtenu toutIllegalArgumentException
ne sais pas à propos de votre code, mais le mien pauses si je spécifier une propriété où il n'y a pas de valeur par défaut et de ne pas trouver dans n'importe quel fichier de propriétés
Il semble qu'il fonctionne, mais aucune idée de pourquoi. Je m'attends à ce que la liste vide directement après les deux points et non après la parenthèse fermante }.
OriginalL'auteur Roby Rodriguez
Vous pouvez utiliser
Collections.emptyList()
pour remplir le vide des objets de la liste avec la taille de zéro comme indiqué ci-dessous:Cela vous donnera un zéro de taille
myList
OriginalL'auteur developer
fonctionne pour moi, à l'aide de Printemps 5.0.x (donne la liste est vide, si votre mon.liste.de.les chaînes de propriété n'est pas configuré dans le contexte)
par la suite, vous pouvez facilement faire quelque chose comme
OriginalL'auteur Philipp Wirth