jsf 2 - managedproperty - ¿Habrá dos instancias para un bean si escribo una anotación de bean @managed y la defino en faces-config.xml?
jsf faces config navigation rule (1)
En mi aplicación, en algunos lugares estamos utilizando la anotación @ManagedBean para Person Bean y para el mismo Bean Person que definimos en faces-confing.xml como a continuación al mismo tiempo.
@ManagedBean("name=person")
@SessionScoped
Public class Person{
}
faces-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>
mi pregunta es si este enfoque crea dos instancias para el bean Person o si importa si hago esto. ¿Tiene esto algún efecto en el rendimiento de mi aplicación si hago esto por cada frijol en mi aplicación?
Hay una prioridad definida para este caso. @ManagedBean
anotación @ManagedBean
evita tener que configurar una entrada en faces-config.xml
pero, si tiene ambas, la entrada <managed-bean>
anula la anotación.
En su caso, solo habrá una instancia configurada como su entrada faces-config.xml
. En su caso, ambos enfoques están configurados de la misma manera, pero, ¿debería cambiar su entrada faces-config.xml
a algo así como
<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>
Su bean se registrará en personBean
lugar de en person
(que es el nombre definido por la anotación).