サービスプロバイダAPIを使用して、実行時にURLClassLoader
によってjarをロードしようとしています。しかし、それは失敗を引き起こします。続きURLClassLoaderはSPIに適していますか?
は、私が何をやったか、次のとおりです。
- はインターフェース
com.github.soiff.shadow.api.Plugin
は、プラグインによって実現することが含まれていshadow-plugin-api
という名前のモジュールを作成します。 shadow-plugin
というshadow-plugin-api
という実装を作成し、shadow-plugin-0.0.1-SNAPSHOT.jar
とパッケージ化します。実装クラスはcom.github.soiff.shadow.plugin.SpringPlugin
です。shadow-core
という名前のスプリングブートアプリケーションを作成し、shadow-plugin-api
を含めます。動的URLClassLoader
によって- ロード
shadow-plugin-0.0.1-SNAPSHOT.jar
とServiceLoader
を通じて私com.github.soiff.shadow.plugin.SpringPlugin
をロードしようとするが、それは何も得ません。
私のgitリポジトリは:https://github.com/soiff/soiff-shadowです。
私は以下の解決策を試しましたが、まだそれを動作させることはできませんでした。事前に感謝の言葉をお願いします。
- SPIインターフェイスのインターフェイスではなく、抽象クラスを試してみました。目標を達成できなかったときにインターフェイスに戻しました。
PathMatchingResourcePatternResolver
私はリソースを取得し、URLClassLoader
を入力パラメータとして渡しましたが、動作しませんでした。- 私は
ResourceFinder
をApacheで実装しようとしましたが、適切なリソースが見つかりませんでした。
私の質問は、外部の瓶からリソースをロードするにはどうすればURLClassLoader
ですか? SPIは可能な解決策ですか?