2

私のアプリケーションでは、いくつかの場所で @ManagedBean アノテーションを Person Bean に使用し、同じ Person Bean に対して、以下のように faces-confing.xml で同時に定義しています。

@ManagedBean("name=person")
 @SessionScoped
 Public class Person{


}

顔-config.xml

<managed-bean>
     <managed-bean-name>person</managed-bean-name>
     <managed-bean-class>com.test.sample.Person</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

私の質問は、このアプローチは Person Bean の 2 つのインスタンスを作成しますか、それともこれを行うかどうかは問題ですか? アプリケーション内のすべての Bean に対してこれを行うと、アプリケーションのパフォーマンスに何らかの影響がありますか?

4

1 に答える 1

5

このケースには優先順位が定義されています。@ManagedBeanアノテーションを使用すると、エントリを設定する必要がなくなりfaces-config.xmlますが、両方がある場合は、<managed-bean>エントリがアノテーションをオーバーライドします。

あなたの場合、faces-config.xmlエントリのように構成されたインスタンスは 1 つだけです。あなたの場合、両方のアプローチは同じように構成されていますが、faces-config.xmlエントリを次のように変更する必要があります

<managed-bean>
     <managed-bean-name>personBean</managed-bean-name>
     <managed-bean-class>com.test.sample.Person</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Bean は(アノテーションによって定義された名前)personBeanではなく、下に登録されます。person

于 2012-10-05T18:36:19.273 に答える