問題タブ [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.

0 投票する
1 に答える
2613 参照

java - Spring でプロパティ プレースホルダー メカニズムを更新する

コンテキスト xml ファイルと、メカニズムSpringによって作成された特定の Bean があります。PropertyPlaceholderConfigurer私の問題は次のとおりです。アプリケーションが関連するプロパティ ファイルの変更を行っていて、アプリケーションを再起動したくない場合。アプリケーションを再起動せずに関連する Bean をリロードしたい。

私の目標に最適なソリューションは何ですか?

0 投票する
1 に答える
948 参照

spring - Spring プロファイルを使用して util:properties をロードすると、ID が複数発生する

Spring(3.1) プロファイルを使用して、プロパティ ファイルを util:properties にロードしています。

そして、ランタイム パラメータ (TC サーバーで実行) を介してプロファイルを呼び出します。-Dspring.profiles.active=local

しかし、私はエラーが発生しますThere are multiple occurrences of ID value 'myProps'

これは以前は他の Bean 定義で実行されていましたutil:propertiesが、追加するとエラーが発生します。

0 投票する
2 に答える
257 参照

spring - Spring Profile 条件付き小道具ファイル 複数環境

Spring Profiles について質問があります。環境ごとに別のアーティファクトが必要になるため、maven プロファイルを使用しない理由を理解しています。それ以来です。Spring Profile を使用するようにコードを変更しましたが、Spring Profiles の問題は、サーバー上に環境ごとに database.property ファイルが必要なことです。私はこのセットアップを持っています。誰もが何百回も見たのと同じセットアップです。

このセットアップで私が考える問題は、各サーバーがenvディレクトリにすべてのファイルを持っていることです(つまり、devはそのサーバーにprod.db.propertiesとtest.db.propertiesファイルを持っています)。プロファイルを使用せずに、maven のビルド中に必要なファイルのみをコピーする方法はありますか? 私は方法を理解することができませんでした。その場合、これは maven プロファイルを使用する理由のように思えます。私は何かを逃したかもしれません。どんな考えでも大歓迎です。

0 投票する
3 に答える
5254 参照

spring - Spring Java 構成とプロパティ プレースホルダーの解決

PropertySourcesPlaceholderConfigurer Bean を明示的に宣言しない場合に、Spring がプロパティ プレースホルダーを解決する方法に頭を悩ませようとしています。注釈を介してJavaを介してSpringを構成する既存のプロジェクトのソースを調べます。. .

春のコンテキストxmlで:

残りのアプリと構成をブートストラップするJavaファイルで

それはすべて非常に巧妙ですが、私の人生では、環境変数に対して ${...} プロパティのプレースホルダー構文を評価するようにSpringに指示するものを理解できません。春のドキュメントで答えを見つけることができませんでしたが、春はこれを行うためにPropertySourcesPlaceholderConfigurerクラスに依存していることを理解しています。このクラスがいつ/どのように暗黙的に呼び出されるかについては、何もわかりません。@Configuration アノテーションによるものですか、それともスプリング ブートストラップ プロセスの別の部分ですか?

これは理解するのに最も適切なことではないことはわかっていますが、「春の魔法」として何かを書き留めるのは嫌いです. これについての洞察は素晴らしいでしょう!

0 投票する
2 に答える
2434 参照

java - Junit テストでスプリング プロファイルを変更する方法

.xml を含む spring プロファイルをコンテキスト構成にインポートするとともに @Activeprofiles を使用しましたが、プロファイルをそれぞれの Junit クラスにロードしていないようです。以下は私がやったことのスニペットです。アサート コンペア値は、設定されているプロファイルに従って変更されていません。スプリング プロファイルを有効にするための改善点。テストクラス。

0 投票する
2 に答える
19713 参照

java - Spring Boot は、Spring Profile を使用して Java 構成クラスからの Bean を無視します

従来のコンテキストをロードして Eclipse でアプリケーションを実行すると、選択した Spring プロファイルに対応する構成クラスで定義された Bean が正しくインスタンス化されます。

しかし、Spring Boot でアプリケーションを実行すると、これらの Bean はインスタンス化されません。

「dev」Spring プロファイルの Java 構成クラスは次のとおりです。

インスタンス化されていない他の Bean を含むAbstractPersistenceConfigクラスを次に示します。

次のコマンドでアプリケーションを実行しようとしましたが、結果は同じでした:

具体的には、Bean「sessionFactory 」はインスタンス化されておらず、 GenericDaoImplクラスに注入できません...

スタックトレース:

Spring Boot 親 POM なしで Spring Boot 1.0.2.RELEASE を使用します。これを POM で定義するだけです:

何かアイデアはありますか?

どうもありがとう!!

0 投票する
2 に答える
2302 参照

spring - 2 つのプロファイルがアクティブな場合にのみ Bean 構成をトリガーする方法

2 つのプロファイル「デモ」と「ローカル」の両方がアクティブな場合にのみ作成する必要がある Bean があります。Java ベースの Spring 構成でこれを達成する最良の方法は何ですか。

これまでに思いついたのは、次のような Bean を作成することです。

そして、Bean 作成メソッドに注入されたものを取得し、それらの Bean に対して if 条件を実行します。

この種のことを行うためのより良い/より簡単な方法はありますか?

0 投票する
1 に答える
9993 参照

java - 特定のプロファイルが設定されているときにSpring Beanをロードしない

背景:外部システムとのインターフェースとなる Bean がいくつかあります。開発の場合、外部システムをモックし、インターフェース Bean を多かれ少なかれ静的な応答を生成するいくつかの実装に置き換えると便利です。だから私がやっていることは、次のようなインターフェイス、実際の実装、およびスタブ実装を作成することです。

...これはうまく機能します。スタブ プロファイルが存在しない場合、スタブ Bean はまったく読み込まれません。存在する場合、 @Primary アノテーションにより、実際の実装にうまく置き換わります。

問題:しかし、同じインターフェースの 2 つの実際の実装を実際に取得した状況で初めて実行しました。そのうちの 1 つはプライマリとして定義されていますが、もう 1 つはアプリケーション コンテキストからロードして使用することもできます。

両方を置き換えるスタブ サービスを作成したいのですが、今回はスタブを @Primary として定義する古い方法は機能しません。プライマリ実装が既に 1 つあるからです。基本的に必要なのは、スタブ プロファイルが設定されているときにプライマリ Bean をロードしない方法ですが、それを正確に行う方法がわかりません。Web 検索やその他のスタック オーバーフローに関する質問は役に立たないようです。

0 投票する
2 に答える
2033 参照

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 クラスを作成することは望ましくありません。

0 投票する
8 に答える
114186 参照

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.