20

ここにある github の Spring Cloud プロジェクトで遊んでいます: https://github.com/spring-cloud/spring-cloud-config

ただし、github からプロパティをプルするのではなく、ローカル プロパティ ファイルを読み取る際に問題が発生しました。github への参照をすべて削除しても、Spring はローカル ファイルを無視しているようです。ここに投稿された同様の質問があります:Spring-Cloud構成サーバーは構成プロパティファイルを無視します

しかし、私はまだ良い答えを見たことがありません。誰かが私にこの例を教えてくれるかどうか疑問に思っていますか? 任意の種類の git リポジトリを使用する代わりに、プロパティをローカルに設定したいと思います。誰かがこれに遭遇したことがあると思います。その例がどこかにある場合は、正しい方向に進むことができるように、それを実際に見てみたいと思います。

4

10 に答える 10

22

私のコードはすべてここにあります https://github.com/spencergibb/communityanswers/tree/so27131143

ソース/メイン/Java/Application.java

@Configuration
@EnableAutoConfiguration
@EnableConfigServer
public class Application {

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

ソース/メイン/リソース/application.yml

spring:
  application:
     name: myconfigserver
  profiles:
     active: native

my:
  property: myvalue

ソース/メイン/リソース/myapp.yml

my:
  otherprop: myotherval

という名前のアプリのプロパティを取得するmyappには、次の手順を実行します。

curl http://localhost:8080/myapp/default

{
     "name": "default",
     "label": "master",
     "propertySources": [
          {
                "name": "applicationConfig: [classpath:/myapp.yml]",
                "source": {
                     "my.otherprop": "myotherval"
                }
          },
          {
                "name": "applicationConfig: [classpath:/application.yml]",
                "source": {
                     "spring.application.name": "myconfigserver",
                     "spring.profiles.active": "native",
                     "my.property": "myvalue"
                }
          }
     ]
}
于 2014-11-26T21:16:53.127 に答える
13

Spring構成サーバーを使用してapple-service(Test Micro Service)の構成を読み取ることができます。

spring config アプリケーションの application.yml

spring:
    profiles:
        active: native
    cloud:
        config:
            server:
                native:
                    searchLocations: classpath:config/
server:
  port: 8888


endpoints:
    restart:
      enabled: true

.properties または .yml ファイルを src\main\resources\config フォルダー内に置きます。このファイルの名前は 、マイクロ サービスのspring.application.nameと一致する必要があります。

たとえば、spring.application.name=apple-service の場合、プロパティ ファイルはsrc\main\resources\configフォルダーのapple-service.propertiesである必要があります。

apple-service のbootstrap.ymlの例:

spring:
  application:
    name: apple-service

cloud:
  config:
    uri: http://localhost:8888
于 2015-10-27T06:00:45.810 に答える
3

spring.profiles.active=native を使用することは、Spring のドキュメントが示唆しているように見えますが、それを機能させることもできませんでした。私のapplication.propertiesファイルは

server.port=8888
spring.cloud.config.profiles=native 

しかし、URLからの応答

http://localhost:8888/config-server/env

{"name":"env","label":"master","propertySources":[{"name":"https://github.com/spring-cloud-samples/config-repo/application.yml","source":{"info.url":"https://github.com/spring-cloud-samples","info.description":"Spring Cloud Samples"}}]}

これは、ネイティブ プロファイルが無視され、サーバーがまだ github をプロパティ ソースと見なしていることを示します。

私が遭遇した小さな追加の問題は、構成サービスのデフォルトポートです。Sprin Cloud Config のドキュメントによると、8888 である必要があります。application.properties から server.port=8888 を削除すると、構成サーバーはデフォルトの Spring Boot ポートであるポート 8080 で起動しますが、1 つの構成サーバーが使用する必要はありません。

于 2014-11-26T18:58:10.090 に答える