Вопрос по managed-bean, jsf-2, faces-config – Будут ли два экземпляра для bean-компонента, если я напишу аннотацию @managed bean-аннотации и определю ее в файле face-config.xml?

2

В моем приложении в некоторых местах мы используем аннотацию @ManagedBean для bean-компонента Person и для одного и того же bean-компонента Person, который мы одновременно определяем в face-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 или имеет значение, если я это сделаю? Влияет ли это на производительность моего приложения? Если я делаю это для каждого Бина в моем приложении?

Ваш Ответ

1   ответ
4

@ManagedBean аннотация не требует настройки записи вfaces-config.xml но, если у вас есть оба,<managed-bean> запись переопределяет аннотацию.

В вашем случае будет только один экземпляр, настроенный как вашfaces-config.xml запись. В вашем случае оба подхода настроены одинаково, но, если вы измените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>

Ваш боб будет зарегистрирован подpersonBean скорее, чемperson (это имя, определенное аннотацией).

Спасибо за очень хорошее разъяснение. mdp

Похожие вопросы