2013-02-16 1 views
1

내 ZK 작성기에서 공용 URL 구문 분석을위한 유틸리티 Bean을 만들고 싶습니다. 그러나 스프링 관리 bean에서 Executions.getCurrent()과 같은 것을 사용하는 것이 안전한지 확인하고 싶습니다. 나는 그것이 Executions.getCurrent()이 정적 인 것으로 확신한다. 여기 ZK & Spring - Spring Bean에서 Executions.getCurrent()를 사용하기에 안전합니까?

모든 것이 잘 작동합니다, 이런 식으로 일을하고, 그래서 .. 내가

@Component 
public MyUrlBean { 

    // TODO I will, of course, program to an interface here =) 

    private static final String MY_OBJECT_URL_PARAMETER = "my_obj"; 

    public MyObject getMyObjectFromURL() { 
    Execution ex = Executions.getCurrent(); 
    String value = ex.getParameter(MY_OBJECT_URL_PARAMETER) 
    // ... db fetch and the like 
    } 

} 

지금처럼 ..used ..하고 생각하고 무엇을

@VariableResolver(DelegatingVariableResolver.class) 
public MyComposer extends SelectorComposer<Window> { 

    @WireVariable 
    public MyUrlBean myUrlBean; 

    @Override 
    public void doAfterCompose(Window component) { 
    MyObject myObject = myUrlBean.getMyObjectFromURL(); 
    // ... 
    } 

} 

을 나 내가 예상한다 사용자 세션이 충돌하는 등의 문제가 있습니까?

봄 콩은 아니요 static singletons, 맞습니까? 그 대신 실제로 인스턴스를 새로 만드는 객체의 계산 시간을 절약하기 위해 autowired 인스턴스 클래스입니다. 그렇다면이 같은 사용자간에 분명히 충돌이 발생하지 않을 것입니다.

어쨌든 앞서 말씀 드렸듯이 Executions.getCurrent()은 정적입니다. 흠, 여러 사용자가 webapp에 액세스하면 어떻게 작동합니까?

+1

그것은 적어도 공식적 나를 위해 충분 – benbai123

답변

0

예, 안전합니다.

나는 여기에 연결할 공식적인 출처가 없지만, 가치있는 것을 위해, 나의 이전 팀은 프로덕션에서 3000 명 이상의 사용자에게 서비스를 제공하는 거의 모든 페이지 (사용자 컨텍스트를 얻기 위해)에서 이것을 사용 해왔다. 2 년 동안 아무런 문제도 없었습니다.

+0

(공식 문서 http://books.zkoss.org/wiki/ZK_Spring_Essentials/Working_with_ZK_Spring/Working_with_ZK_Spring_Core/Using_Custom_ZK_Scopes_For_Spring_Beans 참조) ZK에 의해 지원됩니다, 그들을 주셔서 감사합니다 작동합니다 대답 할 시간 –