2013-08-30 2 views
-1

스프링 관리 bean이있는 Spring 3.0 + JSF 2.0 웹 응용 프로그램이 있습니다. 현재 모든 bean은 세션 범위가 있습니다. 응용 프로그램에서는 마법사 기능을 사용하지 않습니다. 모든 주요 기능은 다른 탭에 나타납니다.Spring 3.0의 JSF 2.0 viewScope

최근에 우리는 정적 코드 분석기 중 하나를 사용하여 응용 프로그램 코드를 분석했으며 세션 범위가 지정된 콩의 많은 위치에서 가능한 경쟁 조건 문제를 지적했습니다. 여러 탭 시나리오에서 세션 빈을 사용하는 것이 문제가 될 수 있음을 이해합니다. 그런 다음 JSF viewScope을 스프링의 사용자 정의 범위로 구현하여 이러한 상황을 방지 할 수 있다고 제안하는 기사 http://blog.primefaces.org/?p=702을 읽었습니다. 빈을 몇 개 사용하려고했을 때, 해당 응용 프로그램 기능이 중단됩니다.

이제 질문이 두 개 있습니다. 1. 내 응용 프로그램과 경쟁 조건의 관점에서 봄 세션 콩의 현재 사용으로 미래에 얼마나 큰 상황이 될 수 있습니까? 2. 세션 범위 bean으로 여러 탭 문제를 처리하는 다른 방법이 있습니까?

모든 제안을 환영합니다. 감사합니다

+0

필자는 Spring을 사용하지 않았지만 Spring이 이미 특정 버전 이후 또는 일부 사용자 정의 코드를 사용하여 "@Scope ("view ")'와 같은 것을 지원하고"spring jsf view scope " 많은 결과를 얻는다). 그것은 귀하의 기능 요구 사항에 적합해야합니다. 그런 다음 올바른 빈 범위를 선택하는 데 도움이됩니다. http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/7031941#7031941 모서리 케이스가 발생하지 마십시오. 목적에 맞지 않는 범위를 사용하는 것은 단순히 잘못된 것입니다. – BalusC

+0

@ user2704708 .... 나는'JSF 2.0 + spring 3.0'과'@viewscope'로 과거에 일 해왔다. 나는 이것으로 시도했다 http://stackoverflow.com/questions/13005421/jsf-view-scope-in-spring-3-0/14887965#14887965. Checkout은 내가 어떤 아이디어를 얻는데 도움이 될 것입니다. – SRy

+0

Spring 3 + JSF 2에서 사용하는 접근법은 단지 JSF'@ ApplicationScoped' bean이 전체 Spring 컨텍스트를로드하게합니다. 그 bean은 Stateless singleton으로 동작하고 뷰에 사용하는 모든 단일 @ViewScoped 빈에 주입된다. 그렇게하면 모든 뷰가 해당 빈을 통해 서비스를 찾고 DAO 서비스에 액세스 할 수 있습니다. –

답변

0

JSF 용 Spring의 실제로 뷰 구현은별로 정교하지 않습니다. 이 문제를 해결할 인공물을 만들었습니다.

내 github javaplugs/spring-jsf을 참조하십시오.