正在从春季启动配置中的yaml读取嵌套属性



对于我目前正在处理的项目,我正在尝试将嵌套值从yaml加载到spring-boot应用程序中。我一直在尝试不同的方法,但似乎什么都不起作用。

听到的是我的数据库服务器.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
    }

你能告诉我我在这里做错了什么吗。

感谢

尝试此配置并让Spring Boot配置其余部分:示例

application.yml

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

最新更新