私は、SpringのPropertyPlaceholderConfigurerをアプリケーションコンテキストファイルで使用するコードを変更しています。プロパティは正常に読み取られ、アプリケーションで使用されます。しかし、私が<import resource="classpath:/my/class/path/${my.file.name}" />
でPropertyPlaceholderConfigurer宣言をたどると、 "Could not resolve placeholder 'my.file.name'
"というエラーと一連の例外がスローされます。 PropertyPlaceholderConfigurerを宣言した後すぐにプロパティを利用できますか?そうでない場合は、どの時点で利用可能になるのでしょうか?Springプロパティプレースホルダが読み込んだプロパティはすぐに利用できますか?
2
A
答えて
2
春のコンテキストファイルでは複数の処理が行われるため、利用可能なプロパティはどのパスであるのかという問題です。残念ながら、<import>
タグは、Bean宣言より前のパス(例えば、PropertyPlaceholderConfigurer
のタグ)で処理されるため、使用しようとしている方法では利用できません。
あなたがしようとしていることは、Springの共通のことであり、さまざまな解決策があります。彼らはしばしば注入を行うためにあなたのビルドを変更する必要があります。環境ごとのバネ設定のためのグーグル/スタックオーバーフローが何かを起こすはずです。私はSpring 3.1が環境ごとの設定を可能にする機能を提供することを読んでいます( "test"ビルドを行っている場合は "this"プロパティファイルを使用し、 "dev"ビルドを行っている場合はこれを使用します)しかし、私はこの時点でそれについて多くを知らない。
3
PropertyPlaceHolderConfigurer(BeanFactoryPostProcessor)がプロパティプレースホルダーを解決する前に、インポートリソースが解決されます。解決済みのリソース名をインポートに配置する必要があります。
PropertyPlaceHolderConfigurerはBeanFactoryPostProcessorなので、Bean定義がSpring設定ファイルからロードされると呼び出されます。
関連する問題
- 1. Springバッチ - 読み込むファイルが利用できません
- 2. Spring REST Docs:.adocファイルからSpringプロパティを読み込みます
- 3. サイトマップリクエストがすぐに読み込まれるべきですか?
- 4. ReactJS:小道具はすぐに利用できませんか?
- 5. ディスクから読み込んだときにNodejsがクラッシュする
- 6. 設定プロパティがSpringテストで読み込まれない
- 7. ローカルサーバーからビデオファイルをすぐに読み込めません
- 8. SpringのSwagger UI:HTMLファイルのみが読み込まれますが、リソースは読み込まれません。
- 9. ajaxでページを読み込み、読み込んだページアンカーにスクロール
- 10. Membership.Islockedoutプロパティが利用できません
- 11. ファイルから読み込んだtestngグループを使用できますか?
- 12. オブジェクトをファイルに書き込んだり読み込んだりできますか?
- 13. JUnit + spring-testを使用したメソッドレベルのプロパティの読み込み
- 14. CamelではSpringを使用してプロパティを再読み込みする方法はありますか?
- 15. 同じ実行でファイルに書き込んだり読み込んだりするとプログラムがハングします
- 16. プロパティまたはインデクサ 'Form.MdiChildren'を割り当てることができません - 読み込み専用です
- 17. プロパティまたはインデクサーを割り当てることができません - 読み込み専用です
- 18. laravel 5.3アクセサを使用して関係を読み込んだ後にプロパティにアクセスできません
- 19. JavaScript - 変数を.txtファイルに書き込んだ後に読み込みます
- 20. Omnitureオブジェクト "s"はすぐに利用できません
- 21. MySQLの変数はすぐに利用できません
- 22. listviewプロパティは利用できません
- 23. 文字列で読み込んだ後xmlファイルを読み込みます。
- 24. DIでは遅延読み込みができませんか?
- 25. Tomcatがbeans.xmlを読み込んで読み込むときにSpring AOPのXMLスキーマが正しく読み込まれないのです
- 26. メモリを読み込んだときにカーネルモジュールがクラッシュする
- 27. camundaにRESTとSpringを埋め込んだフォームを読み込む方法は?
- 28. コンソールから読み込んだときにクラッシュする - masm32
- 29. プロパティまたはインデクサ 'System.Nullable.Value'を割り当てることはできません - 読み込み専用です
- 30. データを読み込んだ後でSocket.flush()が必要ですか?
これは正しい軌跡です。ただし、import文は実際に別のコンテキストファイルを読み込んでいます。私の目的は、my.file.nameの値に応じて別のコンテキストファイルをロードすることです。各コンテキストファイルには、異なるプロパティファイルをロードするだけではなく、基本的なキャッシングメカニズムの実装が異なります。これを行うためのよりよい方法に関する考えはありますか? – Adam
私がこれをやったやり方は、過去には、インポートXMLの名前をプロパティで定義するのではなく、XMLファイルの "all"をインポートして、注入するBeanのIDを定義するプロパティを持つことです。だから、あなたのさまざまなキャッシングメカニズムをすべて含むxmlをインポートすると、実際に注入(および使用)されるIDはプロパティによって定義されます。それは必ずしも理想的ではありませんが、仕事を終わらせます。 – Melv
このメソッドは、使用されているかどうかにかかわらず、各xmlのBeanをインスタンス化しますか? – Adam