9.2.13. Bean プロキシ

9.2.13.1. Bean プロキシ

プロキシは Bean のサブクラスでランタイム時に生成されます。プロキシは Bean の作成時に挿入され、依存 Bean のライフサイクルはプロキシに関係しているため、依存するスコープ付き Bean をプロキシから挿入することができます。また、プロキシは依存関係の挿入の代わりとして使用され、2 つの問題を解決します。

プロキシを利用することで解決される依存関係挿入の問題

  • パフォーマンス - プロキシは依存関係の挿入よりも速度が早いため、高パフォーマンスを必要とする Bean に利用することができます。
  • スレッドセーフ - 複数のスレッドが同時に Bean にアクセスしている場合でも、プロキシは適切な Bean インスタンスにリクエストを転送します。依存関係の挿入はスレッドの安全性を保証しません。

プロキシ化できないクラス型

  • プリミティブ型あるいはアレイ型
  • final のクラスあるいは final メソッドを持つクラス
  • プライベートではないデフォルトのコンストラクターを持つクラス