2016-03-25 26 views
1

プロパティファイルの値に応じてコントローラを有効/無効にしようとしています。 私のコントローラは、次のようになります。@ConditionalOnExpression @RestControllerを有効/無効にする

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

マイプロパティファイルには、次のようになります。

properties.enabled= false 

とコントローラは常に(私はメソッドgetSomethingにアクセスすることができます)が有効になっています。私はまた、このような組み合わせを試してみました:

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

編集:私は最終的に問題を発見

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

ConditionalOnProperty' @使用 '代わりにまたは式を使用'$ {...} 'ではなく'#{...} 'で始める必要があります。 –

答えて

0

: はまた、異なる注釈を試してみました。私もそこに注釈を追加する必要がありましたように、この豆は春ではなくWebConfigurationクラスで作成されていない

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

私のコントローラは、次のようになります。

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

ConditionalOnPropertyをコントローラクラスに保存する必要がありますか? – okutane

+0

私はしません。それを削除することを忘れてしまった。 – pokemzok

+0

ありがとうございます。私は同じことをやろうとしていますが、私のコントローラは春までに作成されています。 -_- – okutane

関連する問題