web-dev-qa-db-ja.com

SpringCloud構成クライアントが構成サーバーから構成をロードしていません

私はこのリンクをたどっています: http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_client_side_usage

これを何度もテストしましたが、Springクラウドクライアントがクラウドサーバーから構成を読み込んでいることがわかりません。エラーがどこにあるかを確認してください。

POM:

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>
</dependencies>

応用:

    @Configuration
@EnableAutoConfiguration
@RestController
public class ConfigclientApplication {

    @Value("${spring.cloud.config.uri}")
    String url;

    @Value("${production.Host}")
    String Host;


    @RequestMapping("/")
    public String home() {
        return "Host is  => " + this.Host ;
    }

    public static void main(String[] args) {
        SpringApplication.run(ConfigclientApplication.class, args);
    }
}

bootstrap.properties:spring.cloud.config.uri = http:// localhost:8888

  1. 構成サーバーは適切です: http:// localhost:8888/spiritent/default

    {"name": "spirent"、 "profiles":["default"]、 "label": "master"、 "propertySources":[{"name": "classpath:/spirent.yml"、 "source": {"production.Host": "server1"、 "production.port":9999、 "production.value1":12345、 "test.Host": "server2.com"、 "test.port":4444、 "test。 value ":" hello123 "}}]}

  2. 現在 http:// localhost:8080 / まったく開始できません。

    'configclientApplication'という名前のBeanの作成中にエラーが発生しました@Valueの自動注入でproduction.Host環境の値が見つからないようです。

構成サーバーからロードされた後、クライアントで構成を読み取るにはどうすればよいですか?

ご協力いただきありがとうございます。

9
user3006967

Deinumが示唆しているように、クライアントがparentをspring-cloud-starter-parentとして構成されていることを確認し、バージョンを指定します。 Spring Cloudが提供するMavenプラグインは、依存関係に含め、クラウドがブートとは異なるプロジェクトであることを覚えていると機能しません。次のように変更します。

<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>1.0.0.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

次に、新しい分野として(おそらくここでは問題ではない)、@ Configurationと@EnableAutoConfigurationの代わりにアプリケーションで新しいアノテーションを使用します

@SpringBootApplication

第三に、構成サーバーに@EnableConfigServerがあることを再確認します

第4に、クライアントのbootstrap.propertiesにSpringアプリケーション名が指定されていることを確認してください。

spring.application.name=spirent

最後に、spring-cloud-configサンプルプロジェクトを使用した場合、URIに設定する必要のあるデフォルトのユーザーとセキュリティパスワードがあります。

http://user:ddf4757e-0077-42e4-b2ad-2ae04340b08c@localhost:8888

それ以外の場合は、ここにあるspring-cloud-configプロジェクトから開始して、構成サーバーが正しくセットアップされていることを確認してください。

https://github.com/spring-cloud/spring-cloud-config
5
RubesMN