2016-10-04 15 views
1

こんにちは誰かがいつ私に教えてくれるのですか?Thread.currentThread().getContextClassLoader() ウェブアプリケーションで。私はThread.currentThread()。getContextClassLoader()を使用し、プロパティファイルをロードするのではなく)を使用するかどうかを質問します。私は多くのサイトを通過しましたが、適切な答えを得られませんでした。いつWebアプリケーションでThread.currentThread()。getContextClassLoader()を使用するのですか

答えて

2

まず、この方法はJava EEとは関係なく、Java SEのメソッドなので、Webアプリケーションでのみ使用されるもので、潜在的にはどのJavaアプリケーションでも使用されるものではありません。

呼び出しスレッドのコンテキストClassLoaderを確認および/または変更するには、通常、このメソッドをThread.currentThread().setContextClassLoader(ClassLoader)で使用します。

通常、クラスパス上にない特定のフォルダやJARファイルからクラスをロードするカスタムClassLoaderが必要なJavaアプリケーションを作成している場合、これらのメソッドを使用してコンテキストを変更します。ClassLoader以前のCLを復元します。これにより、クラスパス上になかった現在のコンテキストCLから以前はアクセスできないクラスにアクセスできるようになります。

// The previous context ClassLoader 
final ClassLoader contextCL = Thread.currentThread().getContextClassLoader(); 
try { 
    // Set my custom ClassLoader to make my classes accessible 
    Thread.currentThread().setContextClassLoader(myCustomCL); 
    // Execute some code here that will be able to access to classes or resources from 
    // my specific folders and/or jar files 

} finally { 
    // Restore the previous CL 
    Thread.currentThread().setContextClassLoader(contextCL); 
} 
:だからここ

は、あなたのコードは次のようになります方法です

関連する問題