ホームページ > Java > &#&チュートリアル > Spring-:classloader-in-java-vs-spring

Spring-:classloader-in-java-vs-spring

Barbara Streisand
リリース: 2025-01-29 16:12:11
オリジナル
753 人が閲覧しました

spring-: classloader-in-java-vs-spring

Javaのクラスローダーの概念は、Javaランタイムの環境の一部であり、クラスの動的をJava仮想マシン(JVM)にロードする責任があります。 Javaアプリケーションは、クラスローダーを使用して、スタートアップ中にすべてのクラスをロードするのではなく、クラスファイルをオンデマンドでロードします。

主な機能: 動的荷重

:参照時にクラスはオンデマンドでロードされます。

委員会モデル
    :父親の委員会モデルに続いて、ローカルロードを試す前に、荷物クラスの要求が親ローダーに渡されます。
  1. 分離:クラスの分離を維持するのに役立ちます。これは、アプリケーションサーバーなどの複雑なシステムで特に役立ちます。
  2. クラスローダーのタイプ:
  3. ガイダンスクラスローダー
  4. 、その他からコアJavaクラスをロードします。
JVMの一部がネイティブの方法で実装されています。

  1. 拡張ローダー
      Java拡張機能(
    • )からクラスをロードします。 java.lang java.util
    • Application/System Class Loader
  2. アプリケーションのアプリケーション(
  3. 環境変数)からクラスをロードします。
    • カスタマイズされたクラスローダーjre/lib/ext
    ユーザー定義のクラスローダーは、デフォルトの読み込み動作を拡張または変更するために使用されます。
    • クラスローダーメソッド:
    • CLASSPATH
    • :指定された名前のクラスを見つけます。
  4. :委員会モデルを使用してクラスを読み込みます。
  5. :バイト配列はクラスインスタンスに変換されます。
    • クラスローダー階層構造:
スプリングのクラスローダー

springフレームワークでは、スプリングアプリケーションがクラスを動的にロードし、実行時にリソースを管理するため、クラスローダーの概念は非常に重要です。 SpringとJavaのクラスローダーメカニズムは、クラスとリソースの読み込みを強化するために統合されます。

  • 春の使用:findClass(String name)
  • ロードされた豆と構成loadClass(String name)
  • springは、クラスローダーを使用して、構成ファイルで定義されているBeanをロードするか、
  • Annotationクラスを使用します。 defineClass(byte[] b)

ロードリソース

<code>引导类加载器
       ↑
扩展类加载器
       ↑
应用程序类加载器
       ↑
自定义类加载器(如有)</code>
ログイン後にコピー
ログイン後にコピー
抽象化を提供します。舞台裏では、クラスローダーを使用してリソースを分析します。

例:

<code>引导类加载器
       ↑
扩展类加载器
       ↑
应用程序类加载器
       ↑
自定义类加载器(如有)</code>
ログイン後にコピー
ログイン後にコピー
  1. ホットローディング

      Spring Boot DevTools

    • カスタムクラスローダーなどのツールは、開発プロセス中にクラスを動的にリロードします。
    カスタマイズされたクラスローダーシーン
  2. スプリングアプリケーションがコンテナまたはマイクロサービスに展開されている場合、通常、依存関係を分離するためにカスタマイズされたクラスローダーが実装されます(たとえば、TomcatやKubernetesなど)。
    • 面に直面するアスペクト指向プログラミング(AOP)
  3. SpringのAOPは、通常、クラスローダーを介して動的にロードされるプロキシクラスを使用します。
    • スプリングクラスローダーの抽象化:
springのカプセル化されたクラスローダーがリソースの読み込みを簡素化します。

クラスローダーは通常、特定のスレッドにアクセスするために使用され、Springを3番目のパーティライブラリとシームレスに統合できます。
  • DefaultResourceLoader一般的な例:
  • クラスローダーを使用してファイルからBeanをロードします。 ContextClassLoader
javaとspringの重要な違い:

以上がSpring-:classloader-in-java-vs-springの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート