問題タブ [spring-profiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 特定のプロファイルが設定されているときにSpring Beanをロードしない
背景:外部システムとのインターフェースとなる Bean がいくつかあります。開発の場合、外部システムをモックし、インターフェース Bean を多かれ少なかれ静的な応答を生成するいくつかの実装に置き換えると便利です。だから私がやっていることは、次のようなインターフェイス、実際の実装、およびスタブ実装を作成することです。
...これはうまく機能します。スタブ プロファイルが存在しない場合、スタブ Bean はまったく読み込まれません。存在する場合、 @Primary アノテーションにより、実際の実装にうまく置き換わります。
問題:しかし、同じインターフェースの 2 つの実際の実装を実際に取得した状況で初めて実行しました。そのうちの 1 つはプライマリとして定義されていますが、もう 1 つはアプリケーション コンテキストからロードして使用することもできます。
両方を置き換えるスタブ サービスを作成したいのですが、今回はスタブを @Primary として定義する古い方法は機能しません。プライマリ実装が既に 1 つあるからです。基本的に必要なのは、スタブ プロファイルが設定されているときにプライマリ Bean をロードしない方法ですが、それを正確に行う方法がわかりません。Web 検索やその他のスタック オーバーフローに関する質問は役に立たないようです。
java - スプリング プロファイルを使用する場合の TestNG テストへの Bean の自動配線の問題
私は現在、私たちが持っているテスト フレームワークを磨いています。現在のニーズでは、複数のスプリング プロファイルをサポートし、毎回異なるプロファイルでテストを複数回実行する必要があります。各プロファイルは個別のテスト環境を対象としているため、異なるロジックを持つ異なるテスト セットを実行できます。
私はこのようなテストクラスを持っています:
ここに、ProfileSpecificBean
別のクラスによって実装されるインターフェイスがあります。注入される実際の実装は、アクティブな Spring プロファイルによって決定され、Spring XML コンテキストを使用しています。コマンドを使用してMavenでプロジェクトを構築している-Dspring.profiles.active=profileName
ため、テストが渡されたプロファイルをキャッチすることを期待しています。
ただし、現在のテストは、完全なスタック トレース内で次のエラーで失敗します。
org.springframework.beans.factory.NoSuchBeanDefinitionException: 依存関係にタイプ ProfileSpeciticBean の適格な Bean が見つかりません: オートワイヤー候補として適格な少なくとも 1 つの Bean が予想され、0 が見つかりました
このトピックについて調べた結果、テスト クラスの上に注釈が必要であるAbstractTestNGSpringContextTests
ことがわかりました。@ActiveProfiles
したがって、このコードは機能します。
これの問題は、クラスでプロファイル名をハードコーディングするのを避けたいということです。コマンドライン スクリプトを変更するだけで、異なるプロファイルに対して同じテスト クラスを実行する必要があります。
上記は可能ですか?TestNG にコマンドライン プロファイルを認識させ、同じテストを再利用する方法はありますか? テストを実行するには、コードと構成の重複を避ける必要があるため、プロファイルごとに 2 つの Test クラスを作成することは望ましくありません。
java - How to set spring active profiles with maven profiles
I have an application with maven as a build tool.
I am using maven profiles to set up different properties from different profiles.
What i would like to do is that all active profiles in maven will be ported to spring active profiles as well so i can reference them in bean signature (@profile
). but i am not sure how to do it.
for example: consider the following maven setup
#xA;assuming i run maven with out specifying any other profiles i would like for spring to have profile1
and development
as active profiles.
java - クラスパス外でスプリングアクティブプロファイルをオーバーライドするには?
application.properties
をクラスパスの外側 (たとえば on )に配置できるようにしたいのですがd:/
、そこで . を定義しspring.profile.active=production
ます。
これが有効になっている場合、Spring は というクラスパスからプロパティ ファイルを追加でロードする必要がありますmy-production.properties
。
次のことを試しましたが、うまくいきませんでした。私は何を忘れたのでしょうか?
d:\my.properties:
私のデフォルトのプロパティ:
my-production.properties:
アプリ:
java - 実行時のスプリング プロファイルのトラブルシューティング
私は現在、次の Spring プロファイル構成がアプリケーション コンテキストで指定されているレガシー コードベースを維持しています。
問題は、この例で指定されている をどのように読み取るかspring.profiles.active
です。
ここに 4 つの可能なプロファイル定義があると考えるのは正しいですか? すなわち:
ロギングをオンにして、どのプロファイルが選択され、どの Bean が特定のプロファイルにロードされるかを確認する方法はありますか? そうでない場合、なぜロードされなかったのでしょうか?
このブログ投稿やその他のドキュメントを探していますが、上記のプロファイル仕様の構文に固有のものは見つかりませんでした。利用可能なドキュメントはありますか?
ありがとう!
java - Spring 環境プロファイルと JPA
複数の環境、開発、テスト、運用を処理するために、Spring JSON API アプリケーションに環境プロファイルを実装したいと考えています。Unable to use JNDI DataSource provided by Tomcat in Spring?などの例を見てきました。. この時点では、実際にはさまざまなデータベース設定を処理するだけで済みますが、後で環境によっては追加の Bean 構成が必要になる場合があります。
私のpersistence.xmlは現在このようになっています。
さまざまな例を見てきましたので、実装方法が少し混乱しています。
Tomcat データソース構成を引き続き使用できますか? もしそうなら、どのプロファイルを使用するかをどのように知るのですか?
複数の環境用に persistence.xml をどのように構成しますか? jdbc接続の小道具はpersistence.xmlにもあるはずです
再コンパイルせずにアクティブなプロファイルを設定するにはどうすればよいですか?
spring - @EnableMongoRepositories に関する説明
次のような2つの別々のmongoリポジトリを使用するために @EnableMongoRepositories を使用しようとしています:
と
しかし、私はこのエラーのために混乱しています:
私が理解したように、それを修正する唯一のオプションは @Profile を使用することです。プロファイル管理に Maven を使用していますが、コードでハードコア プロファイルが必要な理由がわかりません...
誤解を解くのを手伝ってくれる人はいますか?ありがとう。