Existe-t-il un moyen de désactiver l’enregistrement de client Spring-Boot Eureka en fonction du profil Spring?
Actuellement, j'utilise les annotations suivantes:
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
Ce dont j'ai besoin est soit un conditionnel tel que (excusez le pseudo-code)
@if (Profile!="development")
@EnableDiscoveryClient
@endif
Ou d'une certaine manière dans le fichier de propriétés de l'application. J'ai essayé de définir le fichier application.yml comme suit:
spring:
profiles: development
cloud:
discovery:
enabled: false
Mais cela n'a pas fonctionné.
Faites-le comme ceci: créez une classe annotée @Configuration
(le corps de la classe peut être omis) ex .:
@Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}
Cela signifie que ce fichier de configuration (et @EnableDiscoveryClient
au sein de celui-ci) sera chargé dans tous les profils sauf "développement".
J'espère que cela pourra aider,
Vous pouvez désactiver eureka client dans application.yml en utilisant ceci:
eureka:
client:
enabled: false
C'est aussi pour un profil
Même problème ici. Vous pouvez simplement mettre dans votre fichier de propriétés d'application la configuration suivante:
spring:
profiles: development
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
Il existe une propriété standard de nuages de printemps booléens
spring.cloud.discovery.enabled
Cela pourrait être mieux que "eureka" spécifique puisque vous utilisez peut-être un autre fournisseur.
Avec la dernière version de Spring Cloud Finchley.SR2 si vous utilisez l'annotation @EnableDiscoveryClient, vous devez définir toutes les propriétés suivantes dans application.properties pour désactiver l'enregistrement du service:
spring.cloud.service-registry.auto-registration.enabled=false
eureka.client.enabled=false
eureka.client.serviceUrl.registerWithEureka=false
Avec la dernière version de Spring Boot, veuillez l'ajouter dans le fichier bootstrap.yml
Version cloud du printemps: Edgeware: SR3 et supérieur
spring:
application:
name: test
cloud:
service-registry:
auto-registration:
enabled: false
Cela désactivera eureka. Pour l'activer, il suffit de rendre enabled le vrai