2017-09-14 1 views
-1

Je veux mettre mes adresses de pages dans le fichier yml, mais j'ai un problème avec cela.Dupliquer dans le fichier YAML

path: 
    api.v1.0: /api/v1.0 
    api.v1.0: 
    register: ${path.api.v1.0}/register 
    register: 
     token: ${path.api.v1.0.register}/token/{token} 

lors de la compilation, il obtient une telle erreur

Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing MappingNode 
in 'reader', line 5, column 5: 
     register: ${path.api.v1.0}/register 
     ^
Duplicate key: register 
in 'reader', line 39, column 1: 

Pourquoi ça ne fonctionne pas? PS: Est-ce un bon moyen de placer des adresses dans un fichier yml ou un fichier de propriétés? Est-ce professionnel?

+0

Votre exemple n'est pas un fichier YAML valide. Une clé dans un mappage doit être unique, un fait qui est mentionné plusieurs fois dans la documentation (par exemple dans [section 3.2.1.1] (http://www.yaml.org/spec/1.2/spec.html#id2764044)). – Anthon

Répondre

0

Que ce soit bon ou pas dépend des utilisations prévues, donc je ne peux pas y ajouter beaucoup de valeur. Mais la duplication est parce que vos objets ont des clés en double. Vous pouvez considérer un tableau comme une structure de données:

paths: 
    - 
    name: api.v1.0 
    path: /api/v1.0 
    paths: 
     - 
     name: register 
     path: "${path.api.v1.0}/register" 
     - 
     name: register-token 
     path: "${path.api.v1.0.register}/token/{token}" 
+0

Comment puis-je obtenir valeur @Value ("$ {api.v1.0.register}") - ne fonctionne pas – sdfsd

+0

Vous pouvez passer 'api.v1.0.register' comme variable d'environnement lors du démarrage de la JVM. –

+0

Je veux mettre la valeur dans @RequestMapping (value = "$ api.v1.0.register}") - ne fonctionne pas – sdfsd