指定されたリソースリゾルバを使用するためにSpringアプリケーションコンテキストを操作する方法を知っている人はいませんか。私はam3 s3のセキュリティコンテキストからコンテンツを取得するためにs3リソースを作成し、リソースリゾルバはs3:// ... type URLからこれらの "リソース"を作成し、ローカルアプリケーションコンテキストはロード時に正しいセキュリティ資格情報を使用します設定されたamazons3clientから取得します。新しく構築されたs3リソース用にAmazonS3クライアントを事前設定するs3 ResourceLoaderを作成しました。Springframeworkアプリケーションコンテキストリソースリゾルバ
これらのリソースをコンテキスト設定で「s3:// ...」と指定すると、このリソースリゾルバを使用して適切なリソースタイプを作成することができますが、ここではこれをオーバーライドする必要があります。 SpringのApplicationContextのgetResourceメソッドは、独自のresourceResolver実装を使用するためにDefaultResourceLoaderから継承されています。
「s3:// ...」スキームと一致するリソースの変数リゾルバを設定して、そのリソースリゾルバでリソースタイプを解決することも、もう一つの課題です。
私はS3セキュリティのニーズを非常に扱いやすくするために、Springアプリケーションのコンテキスト(ClasspathXMLAC for argument)のインフラストラクチャを操作するためのより良い方法を知っていることを望んでいます。
その他の提案は大歓迎です。
私はこの機能がコンテキストの中でBeanのために選択されることを望んでいました。私が現在取り組んでいるのは、AmazonS3Client Beanを設定してから、DefaultResourceLoaderを継承したDependent ApplicationContextAware S3Loader Beanを設定し、setApplicationContextを実行することです。「GenericApplicationコンテキストのアプリケーションインスタンスなら、s3LoaderにresourceLoaderを設定します。リソースローダーはs3とMongoDBs GridFSをサポートする必要があるので、新しい名前が必要です:P。 – gbegley
N ResourceLoaderインスタンスにデリゲートするCompositeResourceLoaderを作成することを検討してください。すべてを単一のCompositeResourceLoaderの下に置いて、それをGenericApplicationContext#setResourceLoaderメソッドに渡します。 –