新しい HTTP リクエストが発生するたびに、現在使用されているデータベース (名前が HTTP URL リクエストの一部になっている) を変更する必要があります。 次のコードを使用しようとしていますが、サービスを呼び出して実行すると、前のサービスが完了するかクラッシュするまで、再度呼び出すことができません。 問題は「データベースが選択されていません」であることに気付きましたが、クラッシュせずにデータベースを変更する方法がわかりません:( まだデータベースとテーブルを持っていない場合は、コードを通じてデータベースとテーブルを自動的に作成する必要があるため、私は Flyway を使用します。
リクエストされた URL 経由でユーザーから渡された名前を使用する必要があります URL パターンは次のとおりです。 .../api/v1/{db_name}/... 私は jdbcTemplate を使用していますが、JPA ソリューションは歓迎です :)
リーリー2 つの異なるクライアントからリンクを 2 回呼び出すと例外が発生します:
ああああP粉5456825002024-04-01 09:11:37
基本的に HTTP/s 呼び出しを介してデータベースの秘密を提供しているため、あなたのユースケースは非常に危険だと思います。その他の不便な点は次のとおりです。
リクエストごとにデータベースをロードすると、アプリケーションの応答時間が大幅に増加します
スケーラビリティとリソース消費の問題につながります。
代わりに、一般的には、起動直後にデータベース接続を開始し、プログラムのライフサイクルの残りの間はデータベース接続を開いたままにするように Spring Boot アプリケーションを設定することをお勧めします。この戦略により、スケーラビリティが向上し、データベース アクセスが高速化されます。
同じアプリケーションに対して複数のデータベースを構成する必要がある場合は、複数のデータ ソースを手動で定義できます。リクエストごとに、クエリするデータベースを選択できます