2017-05-08 2 views
2

Je crée un référentiel personnel sur Git où j'ai conservé mon fichier de propriétés. Je crée un serveur de configuration de cloud ('my-config-server') et utilise l'URL du référentiel git. J'ai lié mon application spring-boot qui est supposée accéder au fichier de propriétés externe avec le dépôt Git.Serveur de configuration Cloud avec fichier externe et application de démarrage de démarrage

Problème: Avant d'utiliser les propriétés externes fichier, mon fichier de propriétés internes était situé à: src/main/ressources et je qu'il accédait dans mon application à l'aide

@PropertySource("classpath:myproperties.properties) 

Mais après avoir utilisé le serveur de configuration nuage, ce que tout Est-ce que je devrais faire des changements afin de faire comprendre à mon application de démarrage au printemps qu'elle doit maintenant récupérer des propriétés à partir du dépôt git?

J'ai ajouté

services 
    - my-config-server 

dans manifest.yml J'ai ajouté @EnableConfigServer et @RefreshScope

Que faut-il faire d'autre? Qu'est-ce qu'il faut faire

@PropertySource("classpath:myproperties.properties) 

Répondre

1

Vous devez remplacer le fichier myproperties.properties par un fichier bootstrap.yml qui donne l'url de votre dépôt git:

spring: 
    cloud: 
    config: 
     server: 
     git: 
      uri: https://github.com/spring-cloud-samples/config-repo 

ensuite sur le référentiel, vous devez renommer myproperties.properties avec application.properties. Pour accéder aux propriétés, utilisez l'annotation @Value tels que:

@Value("${my.color}") 
private String myColor; 

Lire la Spring Cloud Config reference pour plus de détails.

+0

Merci. Quelques questions: 1. Pour accéder aux propriétés, j'utilise 'import org.springframework.core.env.Environment;' Environnement public @Autowired env; env.getProperty ("foo.bar"); parce que j'ai besoin de passer une propriété de façon dynamique et d'avoir sa valeur. Votre logique fonctionnera-t-elle avec env.getProperty ("")? – Tiya

+0

2. dans bootstrap.yml, la valeur de: printemps: nuage: config: serveur: git: uri: ssh: //[email protected]: 7999/user/gaia.git \t \t travail ? C'est un dépôt .git uri. 3. Si je remplace myproperties par application.properties, quel devrait être le nom de mon fichier de propriétés externe? application.properties ou myproperties? – Tiya

+0

1. Oui 2. Oui 3. 'bootstrap.yml' remplacera le fichier sur le chemin de classe et' application.properties' sera stocké dans le dépôt git. –