2016-05-12 4 views
0

Für das Projekt, an dem ich gerade arbeite, versuche ich den verschachtelten Wert in yaml in die Spring-Boot-Anwendung zu laden Ich habe verschiedene Dinge von hier und da ausprobiert nichts scheint zu funktionieren.Geschachtelte Propery von Yaml im Frühjahr Startkonfiguration lesen

hören ist, wie meine Datenbank-server.yaml wie folgt aussieht:

spring: 
    application: 
    name: database-service 
    data: 
    mongodb.host: <hostname> 
    mongodb.port: 27017 
    mongodb.uri: mongodb://<hostname>/<db> 

ich die mongodb.host und mongodb.port zugreifen möchten.

Einstiegspunkt des Frühlings-Boot sieht wie folgt aus:

@SpringBootApplication 
@ComponentScan("abc.def.testrun") 
public class DatabaseOperationServiceWebApp 
{ 
    public static void main(String... args) 
    { 
     System.setProperty("spring.config.name", "database-server"); 
     SpringApplication.run(DatabaseOperationServiceWebApp.class, args); 
    } 
} 

hören ist, wie ich den Wert abzurufen, ich versuche: Ich denke, ich etwas falsch hier tue, aber keine Ahnung, was mit, weil ich anders lesen Dinge auf verschiedenen Tutorials. Also, eine Ahnung, was genau hier gemacht werden muss.

@Configuration 
    @Component 
    @EnableConfigurationProperties 
    public class TestRunDatabaseOperationConfig extends AbstractMongoConfiguration 
    { 

     @Override 
     protected String getDatabaseName() 
     { 
      return "db"; 
     } 

     @Value("${mongodb.host}") 
     private String host; 
     @Value("${mongodb.port}") 
     private String port; 
     //more code 
    } 

können Sie mir sagen, was ich hier falsch mache.

Dank

+1

Name is 'spring.data.mongodb.host' nicht' mongodb .host'. Warum lässt du Spring Boot die Dinge nicht für dich konfigurieren? Es hat Auto Config Unterstützung für Mongo (deshalb existieren die Eigenschaften). –

+0

@M.Deinum können Sie bitte Ihren Kommentar als Antwort hinzufügen Ich werde es akzeptieren, ich benutze Auto Config für die Konfiguration der Mongodb –

Antwort

1

diese Config-Versuchen und Spring-Boot-Konfiguration, den Rest lassen: Example

application.yml

spring: 
    data: 
     mongodb: 
      host: <hostname> 
      port: 27017 
      database: <dbname> 
      username: <usernamr> 
      password: ******