4

基本的に、クラスローダーには階層があり、シーケンスのデフォルトクラスローダーは以下のように実行されることを知っています:-

a) ブートストラップ クラス ローダー: 最初に実行され、すべての Java クラスなどをロードします。

b) Extclassloader : Extclassloaders は、すべての ext フォルダー jar と Java ライブラリをロードします。

c) アプリケーションクラスローダー: プログラムが実行され、リンクされたクラスが見つかると、このクラスローダーを使用してクラスパスからロードされます。

ここに画像の説明を入力

現在、さまざまなjson入力に対して実行時にpojoクラスが生成されており、最初にロードされたPojoクラスは、カスタムクラスローダーを使用しても置き換えられないようです(通常のクラスローダーとして、ロードされている場合はクラスが既にロードされているかどうかを最初に確認し、クラスをロードしません下の画像は、通常のデフォルトのクラスローダーの動作です)。

だから今、私は自分のクラスが置き換えられているかどうかをどのように知ることができますか? 一部のリスナーを jvm のクラスにリンクして、クラスが置き換えられたことを知らせることはできますか? クラスプロセスのリロードまたは置換のデバッグを実行できるデバッグ手順を探しています。

注:使用されているカスタムクラスローダーを使用すると、同じクラスがjvmの新しいカスタムクラスローダーインスタンスにロードされたようです。

私がまだ答えを見ているアプローチの問題(おそらく)jsonSchema2pojo jackson deserialisationの問題を見てください。json を動的に作成された Pojo に逆シリアル化することが要件であるため、上記の質問のように実行時に pojo クラスを作成した後に json を逆シリアル化する必要がある場合、どのようなアプローチを提案しますか?

4

0 に答える 0