私はB.jarとC.jarに依存するプロジェクトAを持っています。どちらもクラスパスにspring-datasource.xml
という名前のリソースファイルがあります。プロジェクトAがspring-datasouce.xml
をインポートすると、どちらが選択されますか? Aはどのように決定を下すのですか?Springは、同じ名前の2つのXML設定ファイルをどのように扱いますか?
0
A
答えて
0
これらの2つのファイルに異なるBean定義が含まれている場合、これらのファイルの両方にすべてのBean定義が作成されます。ファイルが同じ名前であるという事実は無関係です。
2つのファイルが同じのBeanを定義している場合、Springは後の定義で以前の定義を上書きします。たとえば:B.jar::spring-datasource.xml
とC.jar::spring-datasource.xml
場合の両方が、その後dataSource
という名前のBeanが含まれています...
- は春が
B.jar::spring-datasource.xml
に遭遇した場合、まずそれは、そのファイルに定義に従ってdataSource
Beanを作成し、それがC.jar::spring-datasource.xml
に遭遇したとき、それは無効になりますdataSource
beanの定義がC.jar::spring-datasource.xml
bean.3にあります。 - もしSpringが最初に
C.jar::spring-datasource.xml
に遭遇すれば、その逆が起こります。
"encounters first"は、SpringがXML構成ファイル、つまりSpringコンテキストにロードされるときのファイルの順序付けを検出する方法を指します。通常、これはランタイムクラスパスの中でB.jar
とC.jar
のオーダーで制御されます。あなたの豆はその後、宣言された順序に関する特定する必要がある場合は、このすなわち不安がある場合
次のいずれか
- 同じ Bean名の複数の定義をお持ちでない
- これは本当にない、あなたのクラスパスに
B.jar
とC.jar
の順序がお好みの順番
でSpringコンテキストにこれらのXMLファイルを提供していることを確認してくださいお勧めします。それは脆弱でエラーが起こりやすい。
FWIWは、@Primary
注釈付きのJava設定を使用しているか、または読み込まれたSpring設定を制御するためにSpringプロファイルを使用することで、この状況をより詳細に制御できます。
関連する問題
- 1. 同じ名前の2つの要素を持つXMLのXSD
- 2. jQuery XML解析:同じ名前の2つのXMLタグ。どのように最初に取るだけ?
- 3. コマンドラインオプションと設定ファイルをどのように扱いますか?
- 4. Spring XMLの設定と名前空間
- 5. 2つのクラスは同じXMLタイプの名前を持っていますmaven jaxbプラグイン、Spring
- 6. 同じ名前の2つの構造体はどのようにして1つを選択しますか?
- 7. どのように同じ名前の.cと.hファイルをリンクしますか?
- 8. 水銀では、2つのリビジョンで同じ名前のファイルとディレクトリを扱う方法は?
- 9. どのように比較する同じ属性名の2つのXMLファイルはPHPで
- 10. Ruby Rails:2つの異なる宝石の同じメソッド名をRailsがどのように扱うか
- 11. 同じ名前の2つのjQueryプラグインを使用するにはどうすればよいですか?
- 12. mstest.exeはDLLの設定ファイルをどのように扱いますか?
- 13. キャッシュの設定はどのように扱いますか?
- 14. 同じ名前の2つのタスクを読み込むにはどうすればよいですか?
- 15. 2つのドキュメントタイプはどのように扱いますか?
- 16. 同じ名前の2つの異なるファイルタイプを同じ名前の新しいフォルダに移動します
- 17. 同じ名前の2つのフィールド
- 18. 同じ名前の2つのMavenビルドからどのようにしてlibsを作成しますか?
- 19. AWS CodePipelineの設定ファイルはどのように扱いますか?
- 20. javascript/es6で2つのクラスを同じ名前でインポートするにはどうすればよいですか?
- 21. spring-mvcで同じ名前の<input>を複数扱う場合
- 22. 2つの同じ文字を別々に扱うにはどうすればよいですか?
- 23. Jacksonパーサーは同じ名前の複数のフィールド名を扱います
- 24. SSRS - データセットに同じ名前の2つのフィールドを入れるにはどうすればいいですか?
- 25. 2つのフォルダをマージしてファイルの名前を同じに保ちます
- 26. ファイル名がPython 3の名前と同じかどうかをチェックします。
- 27. 2つのデータを同じ名前でマージしますか?
- 28. 2つのチェックボックスを同じ名前で送信しますか?
- 29. XML設定ファイルからSpringプロパティを設定するにはどうすればよいですか?
- 30. 同じ名前の2種類のスワッガーモデルを持つにはどうすればいいですか?