通过配置实现managed bean的动态注入

通过配置实现managed bean的动态注入,可以解决JSF应用开发中,在Managed bean中访问其他Managed bean的实例的问题,具体方法如下:
在faces-config.xml中,说明每一个managed bean,通常定义了其名称、对应的类和作用域。例如:

      <managed-bean> 
<managed-bean-name>orderBean</managed-bean-name>
<managed-bean-class>
cn.com.dareway.OrderBean
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>
cn.com.dareway.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

但是怎样在managed bean中访问其他managed bean的实例呢?
通过配置进行动态注入,就能够解决该问题:

<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>cn.com.dareway.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>orderBean</managed-bean-name>
<managed-bean-class>cn.com.dareway.OrderBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userBeanProperty</property-name>
<property-class>cn.com.dareway.UserBean</property-class>
<value>#{userBean}</value>
</managed-property>
</managed-bean>

通常被注入的bean,是一个作用域更大的bean,例如:userBean的作用域是session,orderBean的作 用域是request,把userBean注入到orderBean中是正确的,也就是说被注入的bean的生命周期要大于当前的bean的生命周期。

在managed bean中访问注入的bean:

  private UserBean userBeanProperty;

public void setUserBeanProperty(UserBean ub)
{
userBeanProperty = ub;
}
public UserBean getUserBeanProperty()
{
return userBeanProperty;
}

现在,JSF容器在运行时将userBean动态注入到orderBean中了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值