9.2.13.2. 挿入でプロキシを使用する
概要
各 Bean のライフサイクルが異なる場合に挿入にプロキシが使用されます。プロキシはランタイム時に作成された Bean のサブクラスで、Bean クラスのプライベートメソッド以外のメソッドをすべて上書きします。プロキシは実際の Bean インスタンスへ呼び出しを転送します。
この例では、
PaymentProcessor
インスタンスは直接 Shop
へ挿入されません。その代わりにプロキシが挿入され、processPayment()
メソッドが呼び出されるとプロキシが現在の PaymentProcessor
Bean インスタンスをルックアップし、processPayment()
メソッドを呼び出します。
例9.21 プロキシの挿入
@ConversationScoped class PaymentProcessor { public void processPayment(int amount) { System.out.println("I'm taking $" + amount); } } @ApplicationScoped public class Shop { @Inject PaymentProcessor paymentProcessor; public void buyStuff() { paymentProcessor.processPayment(100); } }
プロキシ化できるクラス型などプロキシに関する詳細情報は 「Bean プロキシ」 を参照してください。