2016-02-01 2 views
10

Есть ли способ отключить регистрацию клиента eureka с пружинным загрузочным устройством на основе профиля пружины?eureka discovery client - выборочно отключено

В настоящее время я использую следующие аннотации:

@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 

Но это не помогло.

+0

Возможный дубликат [Включая определение бина, когда профиль НЕ активен] (http://stackoverflow.com/questions/13575201/including-bean-definition-when-a-profile-is-not-active) – g00glen00b

+0

To используйте класс во всех случаях, исключая один профиль, вы можете написать '@Profile («! development »)' – dmitryvim

ответ

13

ли это следующим образом: создать некоторый @Configuration аннотированный класс (класс тело может быть опущен) напр .:

@Profile("!developement") 
@Configuration 
@EnableDiscoveryClient 
public class EurekaClientConfiguration { 
} 

Это означает, что будет загружен этот файл конфигурации (и @EnableDiscoveryClient в) в каждом профиле, за исключением " Developement».

Надеюсь, что это поможет,

+0

Спасибо, что я искал –

+0

Упрощение этого, потому что это замечательный ответ. – ogradyjd

3

Такая же проблема здесь. Вы можете просто поместить в файл свойств приложения следующую конфигурацию:

spring: 
    profiles: development 

    eureka: 
    instance: 
     hostname: localhost 
    client: 
     registerWithEureka: false 
     fetchRegistry: false 
27

Вы можете отключить клиент эврика в application.yml с помощью этого:

eureka: 
    client: 
    enabled: false 

Это также один профиль

+4

Пожалуйста, добавьте объяснения в свой ответ. –

+0

в application.yml или application.properties вы можете установить весенние переменные в разных профилях, как это было написано в третьем примере кода вопроса. Я просто предложил отключить эврика таким образом – dmitryvim

4

Eсть стандартное свойство булевого весеннего облака

spring.cloud.discovery.enabled

Это может быть лучше, чем «эврика», поскольку вы можете использовать другого провайдера.