2016-05-12 3 views
0

Для проекта, в котором я сейчас работаю, я пытаюсь загрузить вложенное значение из yaml в приложение с пружинным загрузочным устройством. Я пробую разные вещи отсюда и там, но ничего не работает.Чтение вложенных свойств из yaml в конфигурации весенней загрузки

услышать, как мой базы данных server.yaml выглядит следующим образом:

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

Я хочу, чтобы получить доступ к mongodb.host и mongodb.port.

Точка входа яровой загрузки выглядит следующим образом:

@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); 
    } 
} 

слышат, как я пытаюсь получить значение: Я думаю, что я делаю что-то здесь не так, но, не имея ни малейшего представления, что такое, потому что я читал разные вещи в разных учебниках. Итак, какая-то идея знать, что именно нужно делать здесь.

@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 
    } 

не могли бы вы сказать мне, что я делаю неправильно здесь.

Благодаря

+1

Имя является '' не spring.data.mongodb.host' MongoDB .host'. Почему вы не позволяете Spring Boot настроить все для вас? Он поддерживает автоконфигурирование mongo (поэтому свойства существуют). –

+0

@ M.Deinum, можете ли вы добавить свой комментарий в качестве ответа? Я согласен с этим, я использую автоконфигурирование для настройки mongodb –

ответ

1

Попробуйте этот конфиг и пусть Spring Загрузочный настроить остальные: Example

application.yml

spring: 
    data: 
     mongodb: 
      host: <hostname> 
      port: 27017 
      database: <dbname> 
      username: <usernamr> 
      password: ****** 
Смежные вопросы