簡體   English   中英

無法使用@ Configuration.properties讀取application.yml

[英]Can't read application.yml using @Configuration.properties

這是我的application.yml文件:

server:
  port: 8089

schedulers:
  identity:
    origin: http://localhost:7189
    client-id: 72612d8e-b78e-446c-9397-354435696ec3
    secret: 173a7f6a-8263-11e7-bb31-be2e44b06b34
    username: integrationCLient
    password: P@ssword
    token-cache-backoff: 5
    default-token-cache-ttl: 5
    endpoints:
      validateToken: /v3/api/validateToken
      issueToken: /v3/api/oauth/v2/token
    httpClient:
      numOfRetries: 3
      backOffInMillis: 5
  couchbase:
    bootstrapHost: localhost
    bucket: default
    connectionTimeout: 1000

我正在嘗試將該文件讀入我的Spring Boot應用程序。 以下是相關代碼:

@Configuration
@ConfigurationProperties(prefix = "schedulers")
@Getter
@Setter
public class CouchbaseConfig {

  CouchbaseContext couchbaseContext = new CouchbaseContext();

  @Bean
  public Bucket bucket() {
    System.out.println("askfjaslkfjafa" + couchbaseContext.getBootstrapHost());    //throws NPE
    CouchbaseEnvironment env =
        DefaultCouchbaseEnvironment.builder()
            .connectTimeout(Long.parseLong(couchbaseContext.getConnectionTimeout()))
            .build();
    Cluster cluster = CouchbaseCluster.create(env, couchbaseContext.getBootstrapHost());
    return cluster.openBucket(couchbaseContext.getBucket());
  }
}

這是我的CouchbaseContext.java文件:

導入lombok.Getter; 進口龍目島。

@Getter
@Setter
public class CouchbaseContext {
    private String bootstrapHost;
    private String bucket;
    private String connectionTimeout;
}

我在嘗試訪問CouchbaseConfig.javacouchbaseContext對象時得到了NPE 有人可以幫我解決我做錯的事情嗎?

@EnableConfigurationProperties({
    CouchbaseContext.class
})
@Configuration
public class CouchbaseConfig {

    @Bean
    public Bucket bucket(CouchbaseContext couchbaseContext) { ... }
}

此外,您可以在CouchbaseContext中刪除@Configuration

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM