Spring Frameworkとその他のIoCコンテナーの内部

ミゲルピン:

私はしばらくスプリングを使用してきましたが、どのように機能するのか、具体的には、インターフェイスまたは@annotationでのみマークされたBean /クラスをロードおよびウィーブする方法を常に疑問に思っていました

xml宣言の場合、Springが私のBeanをどのように前処理するか(それらはSpringが読み取るxmlコンテキストで宣言されています)を簡単に確認できますが、注釈のみでマークされたクラスの場合、その動作を確認できません。エージェントをjvmなどに渡します。

何らかの基準でクラスを前処理できるJava / JVMフックがあると思いますが、ドキュメントで何も見つけることができませんでした。

誰かが私にいくつかのドキュメントを教えてもらえますか?これはjava.lang.instrument.ClassFileTransformer APIに関連していますか?

イェヴゲニ・カバノフ:

実際、デフォルトでは、SpringはXMLやBeanで構成されたBeanに対してバイトコードの後処理を行いません。代わりに、関連するBeanが動的プロキシにラップされます(java.lang.reflect.ProxyJava SDK など参照)。動的プロキシは、使用する実際のオブジェクトをラップし、メソッド呼び出しをインターセプトして、AOPアドバイスを適用できるようにします。違いは、プロキシは本質的にフレームワークによって作成された新しい人工クラスであるのに対し、ウィービング/バイトコードの後処理は既存のものを変更することです。後者は、あなたが言及したインストルメンテーションAPIを使用しないと不可能です。

アノテーションについては、<context:component-scan>タグの実装は、Springアノテーションを含むすべてのクラスのクラスパスをスキャンし、それらのSpringメタデータプレースホルダーを作成します。その後は、XMLを介して構成されたかのように扱われます(より具体的には、両方が同じように扱われます)。

Springはバイトコードの後処理自体を実行しませんが、プロキシが満足しない場合は、Springで正常に動作するAspectJウィービングエージェントを構成できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring ContextとSpring IOCコンテナはどちらも同じで、ApplicationContextはその一部ですか?

分類Dev

IoC コンテナからのオブジェクトの受信 - Spring

分類Dev

Springは、新しいクライアントごとに常に新しいIOCコンテナを作成しますか?そうでない場合、シングルトンBeanをどのように管理しますか?

分類Dev

DockerコンテナのSpringテンプレート

分類Dev

Spring CloudProjectでのDockerコンテナ化

分類Dev

Springコンテナの実装

分類Dev

IoCコンテナーの外部で単純なSpring JDBCトランザクションを実行するにはどうすればよいですか?

分類Dev

Springコンテナ構成でのJPAプロバイダーと方言とベンダーの比較

分類Dev

Spring Boot-IOCコンテナーでBeanをシングルトンとして作成する

分類Dev

Spring Beanコンテナーの<import>コマンドは重複コンテナーを排除しますか?

分類Dev

Spring FrameworkのアプリケーションコンテキストとBeanファクトリとは

分類Dev

IoC / DI、特にSpring:セッター/コンストラクターなしのAutowireプロパティ

分類Dev

Springコンポーネントの内部コンポーネントのプロパティを使用する

分類Dev

Spring Boot Docker コンテナを MongoDB の Docker コンテナに接続する

分類Dev

Spring Boot +マルチテナンシーのSpring Data

分類Dev

Spring Data MongoDB-他のコレクションとの集計

分類Dev

Springコンテンツ、他のページで画像を取得する方法

分類Dev

DockerコンテナとしてのZuul API GWとJava Springアプリケーションの一部としてのZuul API GW?

分類Dev

Spring統合のデフォルトのメッセージリスナーコンテナーIsRunning false

分類Dev

Spring AMQPJava構成を使用した各キューの専用リスナーコンテナーの構成

分類Dev

実行時にSpringコンテナー内のBeanを置き換える

分類Dev

Springコンストラクターの自動配線と他のフィールドの初期化

分類Dev

Spring SecurityとXACML(またはその他のポリシーベースのソリューション)との統合

分類Dev

Spring MVCコントローラーの継承とルーティング

分類Dev

Spring Framework 3.0.5のSpring-JsonとJackson

分類Dev

実際のコンテナを実行するサービスレイヤーモックを使用してコントローラーテストを作成します(例:tomcat、おそらくSpringコンテキストファイルを変更する)

分類Dev

DockerコンテナーのSpringサービスは、Dockerコンテナーのmysqlに接続できません

分類Dev

Spring JPA-エンティティ間の内部結合に適した方法はありますか、それとも唯一の方法はJPQLですか?

分類Dev

オプションの組み込みTomcatコンテナーを備えたSpring BootのJNDI

Related 関連記事

  1. 1

    Spring ContextとSpring IOCコンテナはどちらも同じで、ApplicationContextはその一部ですか?

  2. 2

    IoC コンテナからのオブジェクトの受信 - Spring

  3. 3

    Springは、新しいクライアントごとに常に新しいIOCコンテナを作成しますか?そうでない場合、シングルトンBeanをどのように管理しますか?

  4. 4

    DockerコンテナのSpringテンプレート

  5. 5

    Spring CloudProjectでのDockerコンテナ化

  6. 6

    Springコンテナの実装

  7. 7

    IoCコンテナーの外部で単純なSpring JDBCトランザクションを実行するにはどうすればよいですか?

  8. 8

    Springコンテナ構成でのJPAプロバイダーと方言とベンダーの比較

  9. 9

    Spring Boot-IOCコンテナーでBeanをシングルトンとして作成する

  10. 10

    Spring Beanコンテナーの<import>コマンドは重複コンテナーを排除しますか?

  11. 11

    Spring FrameworkのアプリケーションコンテキストとBeanファクトリとは

  12. 12

    IoC / DI、特にSpring:セッター/コンストラクターなしのAutowireプロパティ

  13. 13

    Springコンポーネントの内部コンポーネントのプロパティを使用する

  14. 14

    Spring Boot Docker コンテナを MongoDB の Docker コンテナに接続する

  15. 15

    Spring Boot +マルチテナンシーのSpring Data

  16. 16

    Spring Data MongoDB-他のコレクションとの集計

  17. 17

    Springコンテンツ、他のページで画像を取得する方法

  18. 18

    DockerコンテナとしてのZuul API GWとJava Springアプリケーションの一部としてのZuul API GW?

  19. 19

    Spring統合のデフォルトのメッセージリスナーコンテナーIsRunning false

  20. 20

    Spring AMQPJava構成を使用した各キューの専用リスナーコンテナーの構成

  21. 21

    実行時にSpringコンテナー内のBeanを置き換える

  22. 22

    Springコンストラクターの自動配線と他のフィールドの初期化

  23. 23

    Spring SecurityとXACML(またはその他のポリシーベースのソリューション)との統合

  24. 24

    Spring MVCコントローラーの継承とルーティング

  25. 25

    Spring Framework 3.0.5のSpring-JsonとJackson

  26. 26

    実際のコンテナを実行するサービスレイヤーモックを使用してコントローラーテストを作成します(例:tomcat、おそらくSpringコンテキストファイルを変更する)

  27. 27

    DockerコンテナーのSpringサービスは、Dockerコンテナーのmysqlに接続できません

  28. 28

    Spring JPA-エンティティ間の内部結合に適した方法はありますか、それとも唯一の方法はJPQLですか?

  29. 29

    オプションの組み込みTomcatコンテナーを備えたSpring BootのJNDI

ホットタグ

アーカイブ