Ez a szabály megjelöli a transient módosítóval
rendelkező mezőket a @SessionScoped annotációval ellátott
osztályokban.
A Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans
megvalósításban egy alkalmazás beállíthat transient mezőket
közvetlenül a munkamenet hatókörű komponensekhez. A CDI 1.2 Weld
megvalósításban a transient mező közvetlen beállítása nem
eredményezi a mező feltöltését egy átállás után, ami váratlan viselkedést
okozhat az alkalmazásban.
Ellenőrizze, hogy a szabály által megjelölt minden transient
mező csak egy, a tartalmazó osztály által adott módszer
használatával van beállítva. Ha a mezőhöz nem található beállító módszer,
akkor adjon hozzá egy set módszert, és hívja meg azt a mező közvetlen
beállítása helyett.
a következő példában a UserBean osztálynak van egy
@SessionScoped annotációja.
Az osztály tartalmaz egy olyan transient módosítóval rendelkező mezőt
is, amely egy beállító módszer használatával van beállítva.
@Named(érték = "userBean")
@SessionScoped nyilvános osztály UserBean megvalósítja a UserInterface, Serializable {
Karaktersorozat neve; ideiglenes karaktersorozat nickName;
...
Public void setNickName (String nick) {
nickName = nick;
}
A Java Platform, Enterprise Edition (Java EE) 7 CDI 1.2 megvalósítással kapcsolatos további információkért tekintse meg a következőt: Contexts and Dependency Injection 1.2 viselkedésváltozásai.