スプリングプロファイルに基づいてスプリングブートeurekaクライアント登録を無効にする方法はありますか?
現在、次の注釈を使用しています。
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
私が必要なのは、(擬似コードを言い訳する)などの条件です
@if (Profile!="development")
@EnableDiscoveryClient
@endif
または、アプリケーションプロパティファイルに何らかの方法で。 application.ymlファイルを次のように設定しようとしました:
spring:
profiles: development
cloud:
discovery:
enabled: false
しかし、これはうまくいきませんでした。
次のようにしてください:@Configuration
注釈付きクラス(クラス本体は省略可能)例:
@Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}
これは、この構成ファイル(および@EnableDiscoveryClient
within)は、「開発」を除くすべてのプロファイルにロードされます。
お役に立てば幸いです
これを使用してapplication.ymlでeurekaクライアントを無効にできます:
eureka:
client:
enabled: false
また、1つのプロファイル用です
ここで同じ問題。アプリケーションプロパティファイルに次の構成を単純に配置できます。
spring:
profiles: development
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
標準のブール型のスプリングクラウドプロパティがあります
spring.cloud.discovery.enabled
別のプロバイダーを使用している可能性があるため、これは「eureka」固有のものよりも優れている場合があります。
Spring Cloud Finchley.SR2の最新バージョンでは、アノテーション@EnableDiscoveryClientを使用している場合、application.propertiesで以下のすべてのプロパティを設定してサービス登録を無効にする必要があります。
spring.cloud.service-registry.auto-registration.enabled=false
eureka.client.enabled=false
eureka.client.serviceUrl.registerWithEureka=false
Springブートの最新バージョンでは、これをbootstrap.ymlファイルに追加してください
Springクラウドバージョン:Edgeware:SR3以降
spring:
application:
name: test
cloud:
service-registry:
auto-registration:
enabled: false
これにより、eurekaが無効になります。有効にするには、有効にする必要があります