最近、私はJavaのカスタムクラスローダーAPIを利用しました。私はここで1つの使用を見つけました。kamranzafar's blog 私はクラスローダーの概念を少し熟知しています。誰かが詳細に説明することができますか、それが必要な場合や使用する必要がある場合はどうなりますか?カスタムクラスローダーの使用方法
答えて
カスタムクラスローダーは、いくつかのモジュール/アプリケーションで構成されるより大きなアーキテクチャで役に立ちます。ここでは、カスタムクラスローダの利点は、次のとおりです。
- はモジュラーアーキテクチャはモジュラー型アーキテクチャを許可する複数のクラスローダを定義できます。
- 矛盾の回避クラスローダー内のクラスのスコープを明確に定義します。
- サポートバージョン管理同じVM内の異なるバージョンのモジュールを異なるモジュールでサポートします。
- メモリ管理の改善未使用のモジュールを削除して、そのモジュールが使用するクラスをアンロードし、メモリをクリーンアップします。
- どこからでもクラスをロードするクラスはどこからでもロードすることができます。データベース、ネットワーク、さらにはをオンザフライで定義することもできます。
- 動的にリソースまたはクラスを追加する上記のすべての機能を使用すると、クラスまたはリソースを動的に追加できます。
- ランタイムリロード変更クラス変更されたクラスを含む実際のクラスローダーへの子クラスローダを作成することによって、クラスまたはクラスランタイムをリロードすることができます。
どこからでもクラスをロードする興味深い(クールな)例がここにあります:http://99-bottles-of-beer.net/language- java-1162.html – Crollster
@Ramesh PVKあなたの説明に感謝します。あなたが何を記述しているかを理解するためのいくつかのサンプルコードを提供することができれば、本当に素晴らしいです。あなたがjavaに興味を持っている私たちのようにそれをすることを願っています。 –
主な用途はアプリケーションサーバーであり、2つのアプリケーションを実行でき、クラスが競合しないようにします。すなわち、アプリケーション1がアプリケーション2と同じ名前のクラスを有する場合、カスタムクラスローダアプリケーション1はそのクラスをロードし、アプリケーション2はそのクラスをロードする。
また、クラスがカスタムクラスローダーによってロードされている場合、そのクラスをJVMからアンロードすることもできます。アプリケーションサーバーでも便利です。
もう1つの用途は、アスペクト指向プログラミングを行う方法の1つで、またはいくつかの永続性APIを使用するときです。カスタムクラスローダーを使用すると、実行中のアプリケーションに渡される前に、ロードされたクラスに動作を追加できます。
Javaクラスローダーは、名前が示唆しているものとほとんど同じです。クラスをメモリにロードして使用できるようにします。
クラスは、それらをロードしたClassLoaderともリンクされています。
カスタムクラスローダーは、したがって、興味深い可能性の多様開く:
- 異なるクラスローダーと同じクラスの複数のバージョンをロードを動的に
- ロードとアンロードのクラス(例えば、可能な例のためのバージョン管理confictsを解決するために)実行時に
- 新しいクラスを生成するClojureのようなJVM言語は通常のクラスローダを心配する必要はありません非標準のソース
通常のJavaアプリケーションから実行時にClojureの関数)
- 1. Hibernateマッピング用のカスタムクラスローダー
- 2. カスタムクラスローダーを使用する場合のjava.lang.ClassCastException
- 3. カスタムクラスローダーの問題
- 4. カスタムクラスローダーを持つPropertyPlaceholderConfigurer
- 5. カスタムクラスローダーを使用してリソースバンドルをロードしています
- 6. カスタムクラスローダーを使用してロードされたリロードクラス
- 7. カスタムクラスローダーがすべてのクラスで使用されていません
- 8. カスタムクラスローダーを使用してJavaランタイムおよびAPIクラスをロードする
- 9. org.apache.log4j.ConsoleAppenderをカスタムクラスローダーで設定する
- 10. Webアプリケーションでのインターセプタの使用方法と使用方法
- 11. SplashActivityの使用センターの使用方法
- 12. 継続継承スタイルの使用方法と使用方法
- 13. jarからクラスをロードするカスタムクラスローダーを作成するには?
- 14. 使用方法は
- 15. 使用方法0x08
- 16. 使用方法:System.Collections.Concurrent
- 17. 使用方法 - トランジットバスリアルタイムデータアクセス
- 18. mso - 使用方法
- 19. 使用方法?:operator
- 20. ブートストラップ - 使用方法
- 21. 使用方法onItemSelected
- 22. WSDLの使用方法
- 23. SQLの使用方法
- 24. UIKeyCommandの使用方法
- 25. pygame.surface.scroll()の使用方法は?
- 26. オーサリングツールの使用方法
- 27. addEventListenerの使用方法
- 28. comコンポーネントの使用方法
- 29. ClojureScriptの使用方法は?
- 30. setGravity(Gravity.VERTICAL_GRAVITY_MASK)の使用方法
カスタムクラスローダーの作成に適した記事です。 http://www.journaldev.com/349/java-classloader –