此规则使用 transient 修饰符(位于使用 @SessionScoped 进行注释的类中)标记字段。
在 Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans 实现中,应用程序可直接在会话范围 bean 上设置 transient 字段。在 CDI 1.2 Weld 实现中,直接设置 transient 字段并不能在故障转移后填充该字段,这可能导致应用程序中发生意外行为。
验证是否仅通过包含类所提供的方法设置此规则所标记的每个 transient 字段。如果没有适用于字段的设置方法,请添加一个设置方法并进行调用,以代替直接设置该字段。
在以下示例中,使用 @SessionScoped 来注释 UserBean 类。该类还包含具有使用 setter 方法设置的瞬态修饰符的字段。
@Named(值 = "userBean")
@SessionScoped 公用类 UserBean 实现 UserInterface, Serializable {
字符串名称; 瞬态字符串 nickName;
我 ...
public void setNickName (String nick) {
nickName = nick;
} }
有关 Java Platform Enterprise Edition (Java EE) 7 CDI 1.2 实现的更多信息,请参阅 Contexts and Dependency Injection 1.2 behavior changes。