[解決済み] Spring Bootの@RestControllerはプロパティで有効/無効を切り替えられるか?
2023-05-30 03:17:23
質問
標準的なSpring Bootアプリケーションに
@RestController
がある場合、例えば
@RestController
@RequestMapping(value = "foo", produces = "application/json;charset=UTF-8")
public class MyController {
@RequestMapping(value = "bar")
public ResponseEntity<String> bar(
return new ResponseEntity<>("Hello world", HttpStatus.OK);
}
}
エンドポイントが起動しないようにするアノテーションやテクニックはありますか? を防ぐアノテーションやテクニックはありますか? を防ぐアノテーションやテクニックはありますか?
注意: メソッド内部でプロパティをテストして爆発させることは、エンドポイントが存在するため、解決策にはなりません。
私は粒度を気にしません: すなわち、メソッドまたはクラス全体を有効化/無効化することは、両方とも問題ありません。
プロファイルはプロパティではないので、プロファイルを介した制御は私の問題を解決しません。
どのように解決するのですか?
簡単な解決策を見つけました。
@ConditionalOnExpression
:
@RestController
@ConditionalOnExpression("${my.controller.enabled:false}")
@RequestMapping(value = "foo", produces = "application/json;charset=UTF-8")
public class MyController {
@RequestMapping(value = "bar")
public ResponseEntity<String> bar(
return new ResponseEntity<>("Hello world", HttpStatus.OK);
}
}
このアノテーションを追加すると
my.controller.enabled=true
で、私の
application.properties
ファイルでは、コントローラは全く起動しません。
また、より便利な
@ConditionalOnProperty("my.property")
これは上記と全く同じ動作で、もしプロパティが存在して
"true"
であれば、コンポーネントは開始され、そうでなければ開始されません。
関連
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
maven レポート エラー 解決不可能な親POM
-
htmlとwordの相互変換の実装(画像あり)
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring BootでSQL文のログを取るには?
-
[解決済み] springの@Controllerアノテーションと@RestControllerアノテーションの違いについて
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】Spring Boot。application.propertiesでロギングレベルを設定するにはどうすればよいですか?
-
[解決済み】Spring Boot起動後のコード実行について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Javaでよくある構文エラー
-
強制型変換について
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
SocketException java.netの4つの例外解決策。
-
セミコロン期待値エラー解決
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
maven レポート エラー 解決不可能な親POM
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
Java基礎 - マッピングとQ/A