세션 범위 Bean의 임시 필드를 성공적으로 대체 작동할 수 없음

이 규칙은 @SessionScoped 어노테이션이 있는 클래스의 transient 수정자가 있는 필드에 플래그를 지정합니다. CDI(Contexts and Dependency Injection) 1.0 OpenWebBeans 구현에서 애플리케이션은 transient 필드를 세션 범위 Bean에서 직접 설정할 수 있습니다. CDI 1.2 Weld 구현에서는 transient 필드를 직접 설정해도 장애 복구 후에 필드가 채워치지 않으며, 이는 사용자의 애플리케이션에 예기치 않은 작동을 유발할 수 있습니다.

이 규칙에 의해 플래그 지정된 각 transient 필드가 포함 클래스에서 제공한 메소드를 사용해서만 설정되었는지 확인하십시오. 필드에 대한 set 메소드가 없는 경우, 필드를 직접 설정하는 대신에 set 메소드를 추가하고 이를 호출하십시오.

다음 예제에서 UserBean 클래스는 @SessionScoped 어노테이션이 있습니다. 클래스에는 setter 메소드를 사용하여 설정된 임시 수정자가 있는 필드도 포함되어 있습니다.

 @Named(값 = "userBean")
@SessionScoped 공용 클래스 UserBean 은 UserInterface구현, Serializable {
	문자열 이름; 임시 문자열 nickName;

	...

	public void setNickName (String nick) {
	    nickName = nick;
	} }

Java 플랫폼, Enterprise Edition(Java EE) 7 CDI 1.2 구현에 대한 자세한 정보는 Contexts and Dependency Injection 1.2 동작 변경사항을 참조하십시오.