2016-03-25 25 views
1

Özellikler dosyasındaki değere bağlı olarak denetleyiciyi etkinleştirmeyi/devre dışı bırakmayı deniyorum.@ConditionalOnExpress @RestController'ı etkinleştirme/devre dışı bırakma

@RestController 
@ConditionalOnExpression("${properties.enabled}") 
public class Controller{ 
    public String getSomething() { 
    return "Something"; 
    } 
} 

Benim özellikler dosyası şuna benzer:

properties.enabled= false 

Ve kontrolör her zaman (ben yöntemi getSomething erişebilirler) etkindir Benim Kontrolör buna benzer. Ben de böyle kombinasyonları denedi:

@ConditionalOnExpression("${properties.enabled:true}") 
@ConditionalOnExpression("${properties.enabled}==true") 
@ConditionalOnExpression("${properties.enabled}=='true'") 
@ConditionalOnExpression("'${properties.enabled}'=='true'") 

Düzenleme: Sonunda sorun buldum

@ConditionalOnProperty(prefix = "properties", name="enabled") 
+0

ConditionalOnProperty' @ Kullanım 'yerine veya bir ifade kullanmak hangi ile başlamalıdır '# {...}' '' '' {}} '. –

cevap

0

: Ayrıca farklı ek açıklama çalıştı. Ben orada da ek açıklama eklemek zorunda Bu Fasulye Bahar tarafından değil WebConfiguration sınıfında oluşturulmamış

public class CommonWebConfiguration extends WebMvcConfigurationSupport { 
@Bean 
@ConditionalOnProperty(prefix="properties",name = "enabled") 
public Controller controller() { 
    return new Controller(); 
} 
} 

Benim Kontrolör şimdi şuna benzer:

@RestController 
@ConditionalOnProperty(prefix="properties",name = "enabled") 
public class Controller{ 
    public String getSomething() { 
    return "Something"; 
    } 
} 
+0

ConditionalOnProperty'yi bir denetleyici sınıfında tutmanız gerekiyor mu? – okutane

+0

Yapmıyorum. Sadece onu kaldırmayı unuttum. – pokemzok

+0

Teşekkürler. Ben de aynı şeyi yapmaya çalışıyorum, ama denetleyicim ilkbahar tarafından oluşturuldu ve ek açıklama ekledikten sonra Denetleyici her zaman şimdi devre dışı bırakıldı. -_- – okutane

İlgili konular