JSF托管Bean注入

来源:互联网 发布:javascript实例300 编辑:程序博客网 时间:2024/05/06 01:04

@ManagedProperty时,不应该把作用范围较小的ManagedBean注入到作用范围较大的ManagedBean中(例如把scope=request的ManagedBean注入到scope=session的ManagedBean中)。原因是在作用范围较大的ManagedBean的生命周期中,引擎会多次废弃作用范围较小的ManagedBean的旧实例并重新创建新实例。但由于注入动作只在范围较大ManagedBean创建时发生一次,导致它将一直持有最初的被注入实例,而没有随着引擎一起更新。使用@Inject标签进行注入时,可以将@Inject标注的renew属性设为true,通知AOM引擎在每轮请求处理生命周期中重新进行注入,从而允许将小范围的ManagedBean注入到大范围的ManagedBean中。