9.2.13. Bean プロキシ
9.2.13.1. Bean プロキシ
プロキシは Bean のサブクラスでランタイム時に生成されます。プロキシは Bean の作成時に挿入され、依存 Bean のライフサイクルはプロキシに関係しているため、依存するスコープ付き Bean をプロキシから挿入することができます。また、プロキシは依存関係の挿入の代わりとして使用され、2 つの問題を解決します。
プロキシを利用することで解決される依存関係挿入の問題
- パフォーマンス - プロキシは依存関係の挿入よりも速度が早いため、高パフォーマンスを必要とする Bean に利用することができます。
- スレッドセーフ - 複数のスレッドが同時に Bean にアクセスしている場合でも、プロキシは適切な Bean インスタンスにリクエストを転送します。依存関係の挿入はスレッドの安全性を保証しません。
プロキシ化できないクラス型
- プリミティブ型あるいはアレイ型
final
のクラスあるいはfinal
メソッドを持つクラス- プライベートではないデフォルトのコンストラクターを持つクラス