jsf-2 – 如果编写@managed bean注释并在faces-config.xml中定义相同的bean,是否会有两个实例

在我的应用程序的某些地方,我们使用@ManagedBean annoation for Person bean和我们在faces-confing.xml中同时定义的同一个Person bean.
@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>

我的问题是这种方法是否为Person bean创建了两个实例,或者如果我这样做它确实很重要?这对我的应用程序的性能有什么影响如果我在我的应用程序中为每个Bean执行此操作?

为此案例定义了优先级. @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>

您的bean将在personBean而不是person(注释定义的名称)下注册.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念