Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

11.2.13.2. インジェクションでのプロキシーの使用

概要

各 bean のライフサイクルが異なる場合に、インジェクションにプロキシーが使用されます。プロキシーは起動時に作成されたbean のサブクラスで、bean クラスのプライベートメソッド以外のメソッドをすべて上書きします。プロキシーは実際の bean インスタンスへ呼び出しを転送します。

この例では、PaymentProcessorインスタンスは直接注入されませんShop。代わりに、プロキシーが注入され、processPayment()メソッドが呼び出されると、プロキシーは現在のPaymentProcessorBean インスタンスを呼び出し、processPayment()その上でメソッド。

例11.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 プロキシーについて」