2013-08-23 6 views
1

세션의 사용자 (보안 역할, 개인 데이터 등)에 대한 기본 정보를 유지하기 위해 AppSession bean을 작성했습니다. 모든 백킹 빈에 해당 세션 빈의 참조를 삽입하는 것은 나쁜 습관이었습니다. 대신 요청이의 예를 들어요청 범위가 지정된 모든 bean에 세션 범위가 지정된 bean을 삽입하십시오.

은, 콩 범위 : ...

@ManagedBean 
@RequestScoped 
public class MyRequestBean { 
    @ManagedProperty("#{appSession}") 
    private AppSession appSession; 
} 

@ManagedBean 
@RequestScoped 
public class MyRequestBean { 
    @ManagedProperty("#{appSession.user}") 
    private User user; 

    @ManagedProperty("#{appSession.roles}") 
    private Roles[] roles;  
} 

나는 이런 식으로 뭔가를하고 싶습니다 ... 그리고 appSession를 사용 사용자 및 역할 데이터를 검색합니다.

당신은 이것을 어떻게 생각합니까? 여기에 나쁜 습관이 있습니까?

는 PS를 : 죄송합니다, 나는 모든 백업 빈에서 세션 빈의 레퍼런스를 주입하는 나쁜 관행이 있다면 궁금 해서요

+0

맨 앞으로. 콩을 세션에 주입하고 다른 콩팥을 주입해야합니다. 실제로 세션 자체는 전혀 필요하지 않습니다. – EJP

답변

2

영어 원어민 아니에요.

아니야. 그것은 당신이 원하는 일을합니다. 다른 방법으로는 ExternalContext#getSessionMap() 또는 Application#evaluateExpressionGet()을 통해 수동으로 잡을 수 있습니다. 그러나 그러한 방법은 선언적이 아니므로 "덜 좋은"방법입니다.

관련 문제